Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ Магическое число

Автор: Тёмный Эльф 25.02.2007 17:03

Сколько не кручу эту прогу, у меня постоянно выходит число 346. Прога по левому написана или совпадение? wacko.gif Почему так?

/*магическое число*/
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
int main(void)
{ int magic;
int guess;
magic = rand(); /*генерация магического числа*/
do {
printf("Угадай магическое число\n");
scanf("%d",&guess);
clrscr();
if (guess == magic) {
printf("**Верно**");
printf("Магическое число равно\n", magic);
}
else if (guess>magic)
printf("‘Слишком большое\n");
else printf("‘Слишком маленькое\n"); }
while (guess != magic);
return 0;
}

Автор: volvo 25.02.2007 17:15

randomize()

?

Автор: Тёмный Эльф 25.02.2007 17:19

хм. выдает ошибку. не распознал эту функцию. а в каком заголовочной файле она описана? Rand() в <stdlib.h>

Автор: volvo 25.02.2007 17:26

Там же, в stdlib.h, и описана...

...
int guess;
randomize(); /* <--- Здесь поставь ... */

magic = rand(); /*генерация магического числа*/
...

Автор: Тёмный Эльф 25.02.2007 17:39

Забавно, теперь ввожу число 9999999999999999999999999 и прога мне пишет "слишком маленькое" blink.gif
А какое максимальное число, которое может сгенерировать этот Randomize() ? Я знаю, что оно должно быть не меньше 32 767, но не настолько же!?
Кстати, в справочнике Герберта Шилдта по Си (4-издание) нашел только про функцию Rand().

Автор: volvo 25.02.2007 17:41

Да не генерирует randomize ничего! Он сбрасывает псевдослучайную последовательность на новую позицию, чтобы генерируемые rand() значения не повторялись... Показывай, что ты натворил с программой...

Добавлено через 5 мин.

Цитата
теперь ввожу число 9999999999999999999999999
А теперь подумай, КУДА ты вводишь это число? В 2-х байтовую переменную?

Автор: Тёмный Эльф 25.02.2007 17:47

Все то же самое..только randomize(); прибавилось..

Добавлено через 3 мин.

Цитата
А теперь подумай, КУДА ты вводишь это число? В 2-х байтовую переменную?


Ну он на все числа так отвечает... ввожу 8 - маленькое, 800- маленькое, 8888- маленькое и так далее!!!

Автор: volvo 25.02.2007 18:00

У меня только что программа из 1-го поста + randomize() прекрасно отработала... Загадала число 161, и вполне корректно отвечала "большое" или "маленькое" на мой ввод данных... (Turbo C++ 3.0)

Автор: Тёмный Эльф 25.02.2007 18:42

Установил Turbo C++ 3.0. теперь прога работает без лагов. Видимо, это был косяк с компилятором.