Из массива удалить первый отрицательный элемент (ошибка в программе) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написал программу
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void)
  4. {
  5. double a[20];
  6. int i=0,z=0,j=0;
  7. printf("Enter mas:\n");
  8. for(i=0;i<20;i++)
  9. scanf("%d",&a[i]); //ввод массива
  10. for(i=0;i<20;i++);
  11. if(a[i]<0)//проверка на отрицательный член
  12. for(;a[i];i++)
  13. {
  14. a[i]=a[i+1];
  15. z++;
  16. }
  17. if (z==0)
  18. {
  19. printf ("no negative");
  20. }
  21. else
  22. {
  23. for(i=0;i<20;i++)
  24. printf ("%i",a[i]);
  25. }
  26. }
но увы всегда пишет что нет отрицательных. помогите пожалуйста!

Решение задачи: «Из массива удалить первый отрицательный элемент (ошибка в программе)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4.     {
  5.        
  6.         int i=0,z=0, n = 20;
  7.         int a[n];
  8.         printf("Enter mas:\n");
  9.         for(i=0;i<n;i++)
  10.             scanf("%d",&a[i]); //ввод массива
  11.         for(i=0;i<n;i++)
  12.               if(a[i]<0)//проверка на отрицательный член
  13.               {  
  14.                   for(;i < n;i++)                      
  15.                   {
  16.                   a[i]=a[i+1];
  17.                   z++;
  18.                   }
  19.                   n--;
  20.               }
  21.  
  22.         if (z==0)
  23.         {
  24.             printf ("no negative");
  25.         }
  26.         else
  27.         {
  28.            for(i=0;i<n;i++)
  29.                printf ("%d ",a[i]);
  30.         }
  31.         return 0;
  32.     }

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

В этом коде используется язык программирования C.

  1. Сначала объявляются переменные:
    • i используется как счетчик для двух циклов.
    • z используется для отслеживания количества удаленных элементов.
    • n - это размер массива.
    • a[n] - это сам массив, в котором будет храниться ввод пользователя.
  2. Затем пользователю предлагается ввести массив:
    • Используется цикл for, чтобы просить пользователя ввести n чисел.
    • Функция scanf используется для считывания ввода пользователя и сохранения его в массиве a.
  3. Далее происходит удаление первого отрицательного элемента:
    • Используется второй цикл for, чтобы пройти по массиву и проверить каждое число.
    • Если число отрицательное, то оно будет удалено из массива, а переменная z увеличится на 1.
    • Удаление элемента осуществляется путем переноса всех последующих элементов на одну позицию вперед.
  4. После этого проверяется, были ли удалены отрицательные числа:
    • Если переменная z равна 0, значит, в массиве не было отрицательных чисел.
    • Если переменная z не равна 0, значит, были удалены отрицательные числа, и их количество отображается на экране.
  5. Наконец, выводятся элементы массива:
    • Используется цикл for, чтобы пройти по массиву и вывести каждый элемент.
    • Функция printf используется для вывода чисел на экран. Этот код предназначен для удаления первого отрицательного числа из массива. Если в массиве нет отрицательных чисел, то выводится сообщение no negative. Если есть отрицательные числа, то они удаляются, и остальные числа выводятся на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы