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

  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
Похожие ответы