В массиве найти количество и координаты перемен знака - C (СИ)
Формулировка задачи:
Задача на языке Си:
Нужно в массиве найти колличество и координаты перемен знака.
P.s уже неделю пробую ничего не выходит((((
Решение задачи: «В массиве найти количество и координаты перемен знака»
textual
Листинг программы
#pragma hdrstop
#pragma argsused
#include <iostream.h>
#include <conio.h>
int main(int argc, char* argv[])
{
int mas [10];
char ch;
int mesto[10];
int count=0;
for (int i=0; i<10; i++)
{ cin>>mas[i]; }
if (mas[0]>=0) ch = '+';
else ch = '-';
for(int i=0; i<10; i++)
{
if (mas[i]>=0)
{
if (ch=='-')
{ ch='+';
mesto[count]=i;
count++;
}
}
else
{
if (ch=='+')
{ ch='-';
mesto[count]=i;
count++;
}
}
}
cout<<"a sign changes after the ";
for (int i=0; i<count; i++)
{
if (i!=0) cout<<","<<mesto[i];
else cout<<mesto[i];
}
cout<<" array cell(s)"<<"\n";
cout<<"a sign changes "<<count<<" times";
getch();
}
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Объявляются переменные:
int mas[10]- массив из 10 целых чисел;char ch- символ, который будет использоваться для обозначения знака;int mesto[10]- массив из 10 целых чисел;int count=0- счётчик количества найденных знаков.
- Заполняется массив
masс помощью ввода с клавиатуры. Для этого используется циклforи функцияcin. - Проверяется значение первого элемента массива
mas. Если оно больше или равно нулю, то в переменнуюchзаписывается символ '+', иначе вchзаписывается символ '-'. - С помощью двух вложенных циклов
forпроверяются все элементы массиваmas. Если значение элемента больше или равно нулю и в переменнойchсейчас символ '-', то вchзаписывается символ '+', в массивmestoзаписывается номер текущего элемента, а счётчикcountувеличивается на единицу. Если значение элемента меньше нуля, то вchзаписывается символ '-', в массивmestoзаписывается номер текущего элемента, а счётчикcountувеличивается на единицу. - С помощью цикла
forи функцииcoutвыводятся на экран номера ячеек массиваmesto, разделенные запятыми. - С помощью функции
coutвыводится сообщение о количестве найденных знаков. - С помощью функции
getchприостанавливается выполнение программы и начинается ввод с клавиатуры.