Консультация № 188445
17.12.2015, 20:38
0.00 руб.
0 5 1
Доброго времени суток! Пожалуйста, помогите с задачей:
Дана последовательность, состоящая из К элементов. Последовательность содержит не менее двух элементов, признаком ее завершения является число 0. Выполнить следующее действие: если элементы последовательности возрастают, то вывести 1; если элементы последовательности убывают, то вывести −1; если элементы не возрастают и не убывают, то вывести 0. Последовательность генерировать. Массивы не использовать.
Язык Си.

Обсуждение

давно
Посетитель
7438
7205
17.12.2015, 20:43
общий
Адресаты:
Здравствуйте! А попробуйте сначала самостоятельно...
Не будет получаться, кидайте сюда, подправим...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399292
22
17.12.2015, 21:06
общий
Цитата: Лысков Игорь Витальевич
Здравствуйте! А попробуйте сначала самостоятельно...
Не будет получаться, кидайте сюда, подправим...

Вот, я попытался, но безуспешно :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(0));
printf("Дана последовательность, состоящая из К элементов, заканчивающаяся 0.");
printf("\nЕсли последовательность возрастает - вывести 1,если убывает - 1,\n если ни возрастает, ни убывает - 0 \n");
printf("Введите число наборов К: ");
int K;
scanf("%d", &K);
if (K<=0 || K<=2)
{
printf("/n Неверное значение K. Попытайтесь снова.\n");
return 0;
}
int min, max;

int flag=5, sr,i;
sr=rand()%10;
printf("%d ", sr);
min=sr;
max=sr;

for (i=1; i<K-1; i++)

{
sr=rand()%10;
printf(" %d ", sr);
while (flag!=0)
{
if (sr>max)
{
max=sr;
flag=1;

}
if (sr<min)
{ min=sr;
flag=-1;

}
if ((flag==1 && sr<max) || (flag==-1 && sr>min))

flag=0;
}

}
printf(" 0");
printf("\n%d", flag);


}








давно
Посетитель
7438
7205
17.12.2015, 21:09
общий
Адресаты:
Ок, посмотрю. Чуть позже...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
399292
22
17.12.2015, 21:13
общий
Цитата: Лысков Игорь Витальевич
Ок, посмотрю. Чуть позже...

Хорошо
давно
Посетитель
7438
7205
18.12.2015, 01:22
общий
это ответ
Здравствуйте, 125484848!
Держите подправленную программу.
Комментариев не писал, думаю, понятно и так.
Удачи!
[code h=200]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(0));

printf("Дана последовательность, состоящая из К элементов, заканчивающаяся 0.");
printf("\nЕсли последовательность возрастает - вывести 1,если убывает - 1,\nесли ни возрастает, ни убывает - 0 \n");

printf("Введите число наборов К: ");
int K;
scanf("%d", &K);
if (K<2)
{
printf("/n Неверное значение K. Попытайтесь снова.\n");
return 0;
}
int min, max;

int flag=5, sr,i;
sr=rand()%10;
printf("%d ", sr);
min=sr;
max=sr;

for (i=1; i<K; i++)
{
sr=rand()%10;
printf("%d ", sr);
if (flag!=0)
{
if (sr>max)
{
max=sr;
if (flag==5)
flag=1;
else if (flag==-1)
flag=0;
}
else if (sr<min)
{
min=sr;
if (flag==5)
flag=-1;
else if (flag==1)
flag=0;
}
else
flag=0;
}
}
printf("0\n%d\n", flag);
return 0;
}
[/code]
5
Большое спасибо!
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа