Добавить после каждого отрицательного элемента массива вычисляемый элемент - C (СИ)
Формулировка задачи:
добавить после каждого отрицательного элемента массива элемент со значением m[i-1]+1
Решение задачи: «Добавить после каждого отрицательного элемента массива вычисляемый элемент»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/*
добавить после каждого отрицательного элемента массива элемент со значением m[i-1]+1
*/
#define SIZE 5
int main(){
int mass[SIZE],res[SIZE*2];
int i,j;
srand(time(NULL));
printf("Array:\n");
for(i=0; i<SIZE; i++){
mass[i] = rand()%50-25;
printf("[%d]\t= %d\n",i+1,mass[i]);
}
printf("Result:\n");
for(i=0, j=0; i<SIZE; i++,j++){
res[j] = mass[i];
if(mass[i] < 0){
j++;
res[j] = mass[i] + 1;
}
}
for(i=0; i<j; i++)
printf("[%d]\t= %d\n",i+1,res[i]);
getchar();
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Создается массив целых чисел
massразмером 5 и инициализируется случайными отрицательными числами от -25 до -1. - Выводится на экран содержимое массива
mass. - Создается результирующий массив
resразмером 10. - В цикле элементы массива
massкопируются в массивres, но только если они отрицательные. - Если элемент
massотрицательный, то в следующую ячейку результирующего массива записывается его значение увеличенное на 1. - Выводится на экран содержимое результирующего массива
res.