Элементарная задачка на Си - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста с элементарной задачкой, не могу сделать именно корректность ввода, тоесть например при вводе буквы вместо числа выводить сообщение об ошибке
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
    int minut;
    int sec;
    int obs_sec;

int main(void)
{    setlocale(LC_CTYPE, "Russian");
 
  printf ("Введите количество минут \n");
   scanf("%d", &minut)
 
    printf("Введите количество секунд ");
    scanf("%d", &sec);
 
    obs_sec = (minut*60)+sec;
    printf("Общее количество секунд = %d",obs_sec);
    return 0;
}

Решение задачи: «Элементарная задачка на Си»

textual
Листинг программы
int ret = 0;
    while(!ret)
    {
        puts("Введите количество минут");
        ret = scanf("%d", &minut);
        if(!ret)
        {
            puts("Неверный ввод: введите число");
            scanf("%*s");
        }
    }

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

  1. Объявлена переменная ret типа int со значением 0.
  2. Запущен цикл while, который будет выполняться до тех пор, пока значение переменной ret не станет ненулевым.
  3. Внутри цикла выводится сообщение Введите количество минут с помощью функции puts.
  4. Используя функцию scanf, происходит попытка чтения значения в переменную minut.
  5. Функция scanf возвращает значение 1, если чтение прошло успешно, и 0 в противном случае.
  6. Если чтение не удалось (значение ret равно 0), то выводится сообщение Неверный ввод: введите число с помощью функции puts.
  7. Используя функцию scanf с модификатором %*s, происходит попытка прочитать и игнорировать все символы до конца строки.
  8. Цикл while повторяется до тех пор, пока не будет успешно считано значение в переменную minut.
  9. По завершении цикла, значение переменной ret равно 1.

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


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

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

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