Найти первый отрицательный элемент массива - 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;
}
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Включаются необходимые заголовочные файлы.
- Устанавливается русская локаль.
- Определяются переменные:
- i - используется для обозначения индекса элемента массива;
- n - используется для обозначения размера массива;
- mas - используется для обозначения адреса массива;
- k - используется для обозначения индекса первого отрицательного элемента массива;
- mas - используется для ввода-вывода значений.
- Пользователю предлагается ввести размер массива.
- Динамически выделяется память под массив.
- Заполняется массив значениями от пользователя.
- Первый отрицательный элемент массива сохраняется в переменной k.
- Если в массиве нет отрицательных элементов, выводится соответствующее сообщение.
- Если в массиве есть отрицательные элементы, выводится сообщение с индексом первого отрицательного элемента.
- Все четные элементы массива заменяются на 0.
- Выводится сообщение о массиве после замены нечетных элементов на нули.
- Массив освобождается от выделенной под него памяти.
- Отображается клавиша для закрытия консоли.
- Возвращается 0, чтобы указать, что программа успешно завершилась.