Удалить первый отрицательный элемент массива - 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];
}

Объяснение кода листинга программы

В данном коде выполняется следующее:

  1. Объявляется переменная типа int с именем u и значением 9.
  2. С помощью функции calloc() выделяется память под массив указателей на int, который будет содержать 9 элементов.
  3. Первый цикл for (от 0 до 8) заполняет выделенный массив значениями из другого массива с именем a.
  4. Второй цикл for (от 0 до 8) копирует значения из следующего элемента массива a в текущий элемент массива b.
  5. В результате, в массиве b будет содержаться последовательность элементов массива a, начиная со второго элемента.
  6. После выполнения программы, выделенная память должна быть освобождена с помощью функции free().

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы