Из массива удалить первый отрицательный элемент (ошибка в программе) - C (СИ)
Формулировка задачи:
Написал программу
но увы всегда пишет что нет отрицательных. помогите пожалуйста!
#include <stdio.h> #include <stdlib.h> int main(void) { double a[20]; int i=0,z=0,j=0; printf("Enter mas:\n"); for(i=0;i<20;i++) scanf("%d",&a[i]); //ввод массива for(i=0;i<20;i++); if(a[i]<0)//проверка на отрицательный член for(;a[i];i++) { a[i]=a[i+1]; z++; } if (z==0) { printf ("no negative"); } else { for(i=0;i<20;i++) printf ("%i",a[i]); } }
Решение задачи: «Из массива удалить первый отрицательный элемент (ошибка в программе)»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { int i=0,z=0, n = 20; int a[n]; printf("Enter mas:\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); //ввод массива for(i=0;i<n;i++) if(a[i]<0)//проверка на отрицательный член { for(;i < n;i++) { a[i]=a[i+1]; z++; } n--; } if (z==0) { printf ("no negative"); } else { for(i=0;i<n;i++) printf ("%d ",a[i]); } return 0; }
Объяснение кода листинга программы
В этом коде используется язык программирования C.
- Сначала объявляются переменные:
i
используется как счетчик для двух циклов.z
используется для отслеживания количества удаленных элементов.n
- это размер массива.a[n]
- это сам массив, в котором будет храниться ввод пользователя.
- Затем пользователю предлагается ввести массив:
- Используется цикл
for
, чтобы просить пользователя ввестиn
чисел. - Функция
scanf
используется для считывания ввода пользователя и сохранения его в массивеa
.
- Используется цикл
- Далее происходит удаление первого отрицательного элемента:
- Используется второй цикл
for
, чтобы пройти по массиву и проверить каждое число. - Если число отрицательное, то оно будет удалено из массива, а переменная
z
увеличится на 1. - Удаление элемента осуществляется путем переноса всех последующих элементов на одну позицию вперед.
- Используется второй цикл
- После этого проверяется, были ли удалены отрицательные числа:
- Если переменная
z
равна 0, значит, в массиве не было отрицательных чисел. - Если переменная
z
не равна 0, значит, были удалены отрицательные числа, и их количество отображается на экране.
- Если переменная
- Наконец, выводятся элементы массива:
- Используется цикл
for
, чтобы пройти по массиву и вывести каждый элемент. - Функция
printf
используется для вывода чисел на экран. Этот код предназначен для удаления первого отрицательного числа из массива. Если в массиве нет отрицательных чисел, то выводится сообщениеno negative
. Если есть отрицательные числа, то они удаляются, и остальные числа выводятся на экран.
- Используется цикл
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д