Найти первый отрицательный элемент массива - C (СИ)

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

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

Нужно ввести массив с клавиатуры и заменить нечетные элементы нулями, и вывести индекс первого отрицательного элемента. Сижу весь вечер, нифига не выходит. Точнее, выходит ужас типа
#include <iostream.h>
#include <stdafx.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
    int n, *mas, k = 0;
    printf("Введите размер массива:\n",n);
    scanf_s("$d",%n);
    mas = new int [n];
    for(int i = 0; i < n; i++)
    {
         printf("Введите размер массива:\n",i);
        scanf_s("$d",%mas[i]);
    }
    for(int i = 0; i < n; i++)
    {
        if(mas[i] < 0)
        {
            k = i;
            break;
        }
    }
   printf("Индекс первого отрицательного элемента:\n",k);
    for(int i = 0; i < n; i++)
    {
        if(mas[i] < 0)
        {
            mas[i] = 0;
        }
    }
    for(int i = 0; i < n; i++)
    {
    printf(" элемент:\n",i);
          printf("mas[i]",i);
    }
    return 0;
}
Что делать?

Решение задачи: «Найти первый отрицательный элемент массива»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <locale.h>
 
int main()
{
    setlocale(LC_ALL, "RUS");
    int i,n, *mas, k = -1;
    printf("Введите размер массива:");
    scanf("%d",&n);
    mas = new int[n];
    for(i = 0; i < n; i++)
    {
        printf("Введите %d-й элемент массива:",i);
        scanf_s("%d",&mas[i]);
    }
    for(i = 0;i < n; i++)
    {
        if(mas[i] < 0)
        {
            k = i;
            break;
        }
    }
    if(k==-1)
        puts("Отрицательных элементов нет\n");
    else
        printf("Индекс первого отрицательного элемента:%d\n",k);
    for(i = 0; i < n; i++)
    {
        if(mas[i]%2 != 0) //нечетные не делятся на 2
        {
            mas[i] = 0;
        }
    }
    puts("массив после замены нечетных элементов на нули:");
    for(int i = 0; i < n; i++)
        printf("%d ",mas[i]);
    delete[] mas;
    puts("");
    getch();
    return 0;
}

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

В этом коде выполняются следующие действия:

  1. Включаются необходимые заголовочные файлы.
  2. Устанавливается русская локаль.
  3. Определяются переменные:
    • i - используется для обозначения индекса элемента массива;
    • n - используется для обозначения размера массива;
    • mas - используется для обозначения адреса массива;
    • k - используется для обозначения индекса первого отрицательного элемента массива;
    • mas - используется для ввода-вывода значений.
  4. Пользователю предлагается ввести размер массива.
  5. Динамически выделяется память под массив.
  6. Заполняется массив значениями от пользователя.
  7. Первый отрицательный элемент массива сохраняется в переменной k.
  8. Если в массиве нет отрицательных элементов, выводится соответствующее сообщение.
  9. Если в массиве есть отрицательные элементы, выводится сообщение с индексом первого отрицательного элемента.
  10. Все четные элементы массива заменяются на 0.
  11. Выводится сообщение о массиве после замены нечетных элементов на нули.
  12. Массив освобождается от выделенной под него памяти.
  13. Отображается клавиша для закрытия консоли.
  14. Возвращается 0, чтобы указать, что программа успешно завершилась.

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

9   голосов , оценка 3.556 из 5
Похожие ответы