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