Удалить первый отрицательный элемент массива - C (СИ)
Формулировка задачи:
Здрасвуйте, задача - изять первый отриц. елемент массиву.
Вот решение, только у меня всегда убирает не 1 отриц., а вообще 1 елемент
Что исправить, как сделать правильно?
#include <stdio.h>
int main(){
int a[3][3],min[4],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++){
printf("Enter element [%i][%i]:",i,j);
scanf("%i",&a[i][j]);
}
min[i]=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++){
if(a[i][j]<min[i]){
min[i]=a[i][j];
}}
for(i=0;i<3;i++){
printf("\nmin[%i]",min[i]);}
printf("\nNew massive:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++){
a[i][j]=a[i][j]-min[i];
printf("\na[%i][%i]=%i",i,j,a[i][j]);
}
return 0;
}Решение задачи: «Удалить первый отрицательный элемент массива»
textual
Листинг программы
int u=9;
int *b=(int *)calloc(u, sizeof(int));
for (i = 0; i < 9; i++){
b[i]=a[i];
}
for (i = 0; i < 9; i++){
b[i]=a[i+1];
}
Объяснение кода листинга программы
В данном коде выполняется следующее:
- Объявляется переменная типа int с именем
uи значением 9. - С помощью функции calloc() выделяется память под массив указателей на int, который будет содержать 9 элементов.
- Первый цикл for (от 0 до 8) заполняет выделенный массив значениями из другого массива с именем
a. - Второй цикл for (от 0 до 8) копирует значения из следующего элемента массива
aв текущий элемент массиваb. - В результате, в массиве
bбудет содержаться последовательность элементов массиваa, начиная со второго элемента. - После выполнения программы, выделенная память должна быть освобождена с помощью функции free().