Программа должна сгенерировать 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с временем и файловой системой.
  2. Определение константы SLEEP_TIME, которая задает время в микросекундах, в течение которого программа будет медленно печатать символы.
  3. Реализация функции slowprint, которая принимает строку и печатает ее медленно, делая паузу на каждую итерацию.
  4. Создание пустой строки buf для считывания ввода пользователя.
  5. В основном цикле программы пользователю предлагается ввести строку, которую затем выводят медленно.
  6. Программа завершается, когда пользователь вводит символ новой строки или когда ввод пользователя превышает размер буфера (BUFSIZ).
  7. Все вызовы функций и операции с переменными объявлены в пределах области видимости main.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы