Удалить первый отрицательный элемент массива - 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().
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д