Завершение программы при вводе символа - C (СИ)

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

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

Задача такая: написать программу, которая переводит температуру по Форенгейту в температуру по Цельсию и по Кельвину. Самое главное: программа должна завершать работу при вводе любого не числового значения. Я это реализовать не смог, но сделал по-другому (при вводе значения больше 1000 программа завершается). Программа работает верно. Вот код.
#include <stdio.h>
#include <locale>
#include <cstdlib>
//номер 8 на странице 204
 
double Temperatures(double n)
{
    const double CONST1 = 1.8; 
    const double CONST2 = 32.0;
    const double CONST3 = 273.16;
    double cel, kel;
    printf("Фаренгейт\tЦельсий        Кельвин\n");
    cel=CONST1*n+CONST2;
    kel=cel+CONST3;
    printf("   %.2f          %.2f         %.2f\n", n, cel, kel);
}
 
int main(void)
{
    setlocale(LC_ALL, "Russian");
    printf("Введите температуру по шкале Форенгейта\n");
    printf("Чтобы выйти из программы введите значение температуры больше 1000\n");
    double far=0.0;
    while (far<=1000.0)
    {
        scanf("%lf", &far);
        if (far<=1000.0)
            Temperatures(far);
    }  
    system("pause");
    return 0;
}
Думал через sizeof() или getchar() реализовать, но не получилось. Как сделать, чтобы при вводе любого не числового значения завершался цикл while() ?

Решение задачи: «Завершение программы при вводе символа»

textual
Листинг программы
int n;
printf ("Vvedite temperaturu po faringeytu:");
    n=scanf("%lf",&temp);
  while (n==1)
{
................
}

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

  1. Объявлена переменная типа int n
  2. Выводится сообщение с приглашением ввести температуру по Фаренгейту
  3. Происходит чтение значения температуры из стандартного ввода с помощью функции scanf. Введенное значение сохраняется в переменной temp
  4. Запускается цикл while, который будет выполняться до тех пор, пока значение переменной n равно 1
  5. Внутри цикла выполняется некоторый код (который не указан в вопросе)
  6. После завершения внутреннего цикла происходит выход из цикла while
  7. Значение переменной n сбрасывается в ноль с помощью оператора &=
  8. Цикл while завершается, и выполнение программы продолжается со следующей строки после цикла

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


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

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

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