C/C++

Программирование на языке C

Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон значений его элементов заданы в Вашем варианте индивидуального задания. В индивидуальных заданиях указано также, какую обработку массива следует произвести.
 #include  
#include
#include
#include

#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define BUFFER 200

void random_fill(int* box, int a, int b) {
if (box) {
size_t i = 0;
srand((unsigned)time(NULL));
do box[i] = RAND(a, b); while (++i < BUFFER);
}
}

void show(int* box, int w) {
if (box) {
size_t i = 0;
do printf("%*i", w, box[i]); while (++i < BUFFER);
puts("");
}
puts("");
}

size_t find_first_negative(int* box) {
static size_t i = 0;
if (box) {
if (i == BUFFER) i = 0;
do if (box[i] < 0) break; while (++i < BUFFER);
}
return i;
}

void replace(int* box) {
if (box) {
size_t i = 0;
do {
if (box[i] > 0) {
size_t j = find_first_negative(box);
if (j == BUFFER) break;
do {
if (box[j] < 0 && abs(box[j]) == box[i]) {
box[j] = 0;
}
} while (++j < BUFFER);
}
} while (++i < BUFFER);
}
}

int main(void) {
int box[BUFFER];
random_fill(box, -50, 51);
show(box, 4);
replace(box);
show(box, 4);
return 0;
}
ВМ
Владимир Малышев
55 417
Лучший ответ
 #include  
#include
#include
#include

#define SIZE 50
#define MIN_VALUE -50
#define MAX_VALUE 50
#define PRINT_LIMIT 50

int main() {
int array[SIZE];
int modifiedIndexes[SIZE];
int modifiedCount = 0;

// Задаем случайное зерно для генератора случайных чисел
srand(time(NULL));

// Заполняем массив случайными значениями
for (int i = 0; i < SIZE; i++) {
array[i] = rand() % (MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;
}

// Выводим значения исходного массива
printf("Исходный массив:\n");
for (int i = 0; i < SIZE && i < PRINT_LIMIT; i++) {
printf("%d ", array[i]);
}
printf("\n");

// Проверяем каждый элемент на равное по модулю отрицательное значение
for (int i = 0; i < SIZE; i++) {
if (array[i] < 0) {
int positiveValue = -array[i];
for (int j = 0; j < SIZE; j++) {
if (j != i && array[j] == positiveValue) {
array[i] = 0;
modifiedIndexes[modifiedCount] = i;
modifiedCount++;
break;
}
}
}
}

// Выводим значения массива после модификации
printf("Массив после модификации:\n");
for (int i = 0; i < SIZE && i < PRINT_LIMIT; i++) {
printf("%d ", array[i]);
}
printf("\n");

// Выводим индексы измененных элементов
printf("Индексы измененных элементов (отрицательные числа с равным модулем заменены на 0):\n");
for (int i = 0; i < modifiedCount; i++) {
printf("%d ", modifiedIndexes[i]);
}
printf("\n");

return 0;
}
Это ответ AI
Обработка
for(i=0;i<N;i++)
if(arr[i]>0)
for(k=i+1;k<N;k++)
if(arr[i]==-arr[k])arr[i]=arr[k]=0;