Задачи замены в массивах предполагают решение задачи на поиск с последующим изменением найденных значений. В основе решения таких задач лежат поисковые алгоритмы с выбором подходящей схемы перебора.
Пример 3. Дан одномерный целочисленный массив, заданный случайными числами на промежутке [-50; 50). Заменить в массиве все отрицательные элементы на элементы им противоположными.
Для решения задачи выполним просмотр массива с начала. Каждый элемент сравним с нулем, при этом отрицательные значения элементов заменим им противоположными ( if (x[i]<0) x[i]=-x[i] ). В данной задаче целесообразно выполнить вывод массива дважды: до и после замены.
//Замена отрицательных значений элементов противоположными
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <time.h>
//подключение модуля для генератора случайных чисел
#define max 100
void gen (int k, int a, int b,int x[max]);
//прототип функции генерации массива
void out (int k, int x[max]);
//прототип функции вывода массива
void zamena (int k, int x[max]);
//прототип функции замены
int _tmain(int argc, _TCHAR* argv[]){
int mas[max];
int n;
do {
printf("\nВведите количество элементов массива n (n<=100):");
scanf ("%d",&n);
}
while (n>max);
gen(n,-50,50,mas);
printf("Вывод сгенерированного массива из %d элементов: \n", n);
out(n,mas);
zamena (n,mas);
printf("\nВывод массива после замены отрицательных