Программа должна сгенерировать 2 случайных числа в диапазоне от 2 до 9 - C (СИ)
Формулировка задачи:
Здравствуйте! я только начинаю изучать азы Си подскажите пожалуйста!
Задача такая: программа должна сгенерировать 2 случайных числа в диапазоне от 2 до 9 , потом вывести их на экран и далее пользователь должен ввести ответ чему будет равно произведение этих чисел. таблица умножения...
Казалось бы всё просто , но оператор While отказывается напрочь работать и условия в скобках не проверяются , даже если оставить только 1 из 4х условий!
это первый вопрос!. на свою голову пока пытался отладить программу решил ввести задержку времени sleep(1000);
почему то задержка работает в секундах а не в милисекундах как должна((((
вот текст программы:
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <locale.h>
#include <windows.h>
#include <time.h>
int main()
{
setlocale(0,"");
int x, y , z;
x=1; y=1;
puts("Программа проверки таблицы умножения:");
system ("pause");
srand(time(NULL));
m:
while (x>=2&&x<=9&&y>=2&&y<=9)
{
sleep(5);
x=rand()%10;
printf("x=%d ",x);
y=rand()%10;
printf("y=%d",y);
}
printf("Введите результат выражения %d*%d\n",x,y);
scanf("%2d",&z);
x*y==z&&printf("\nВерно!!!");
x*y!=z&&printf("\nне верно!!!");
goto m;
getch();
}Решение задачи: «Программа должна сгенерировать 2 случайных числа в диапазоне от 2 до 9»
textual
Листинг программы
#include <stdio.h>
#include <time.h>
#include <sys/select.h>
#define SLEEP_TIME (250000)
void slowprint(const char * s) {
while ( *s ) {
struct timeval t = { .tv_sec = 0, .tv_usec = SLEEP_TIME };
select(0, NULL, NULL, NULL, &t);
printf("%c", *s++);
fflush(stdout);
}
}
int main(void) {
char buf[BUFSIZ];
while ( printf("> ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
slowprint(buf);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с временем и файловой системой.
- Определение константы SLEEP_TIME, которая задает время в микросекундах, в течение которого программа будет
медленнопечатать символы. - Реализация функции slowprint, которая принимает строку и печатает ее
медленно, делая паузу на каждую итерацию. - Создание пустой строки buf для считывания ввода пользователя.
- В основном цикле программы пользователю предлагается ввести строку, которую затем выводят
медленно. - Программа завершается, когда пользователь вводит символ новой строки или когда ввод пользователя превышает размер буфера (BUFSIZ).
- Все вызовы функций и операции с переменными объявлены в пределах области видимости main.