Доработка программы, нужно что бы после того как юзер введет вместо числа что то другое вылезала ошибка - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <windows.h>
int main(void)
{
SetConsoleOutputCP(1251);
char unit;
float Celsius=0.0, Kelvin=0.0, Fahrenheit=0.0;
printf("Введите из какой шкалы вы хотите перевести\nЦельсии\nФаренгейты\nКельвина\n");
scanf("%c", &unit);
switch(unit)
{
case 'C':
case 'c':
case '1':
printf("Введите Цельс.\n");
scanf("%f",&Celsius);
Fahrenheit = 1.8 * Celsius + 32;
Kelvin = Celsius +273;
break;
case '2':
case 'f':
case 'F':
printf("Введите Фар.\n");
scanf("%f",&Fahrenheit);
Celsius = (Fahrenheit - 32)/1.8;
Kelvin = Celsius + 273;
break;
case 'K':
case 'k':
case '3':
printf("Введите Кель\n");
scanf("%f",&Kelvin);
Celsius = Kelvin - 273;
Fahrenheit = 1.8 * Celsius + 32;
break;
default:
printf("Введены неправильные значения\n");
return -1;
}
printf("Цельс. %f\n", Celsius);
printf("Фаренг. %f\n", Fahrenheit);
printf("Кель. %f\n", Kelvin);
return 0;
}Решение задачи: «Доработка программы, нужно что бы после того как юзер введет вместо числа что то другое вылезала ошибка»
textual
Листинг программы
#include <stdio.h>
#include <windows.h>
int main(void)
{
SetConsoleOutputCP(1251);
char unit = '\0';
float Celsius = 0.0,
Kelvin = 0.0,
Fahrenheit = 0.0;
puts("Введите из какой шкалы вы хотите перевести\n 1. Цельсии\n 2. Фаренгейты\n 3. Кельвина\n");
scanf("%c", &unit);
switch(unit)
{
case 'C': case 'c': case '1':
{
while(1)
{
puts("Введите Цельс: ");
if(!scanf("%f", &Celsius))
{
fflush(stdin);
puts("Ошибка ввода. Повторите попытку...\n\n");
}
else
break;
}
Fahrenheit = 1.8 * Celsius + 32;
Kelvin = Celsius +273;
break;
}
case '2': case 'f': case 'F':
{
while(1)
{
puts("Введите Фар: ");
if (!scanf("%f", &Fahrenheit))
{
fflush(stdin);
puts("Ошибка ввода. Повторите попытку...\n\n");
}
else
break;
}
Celsius = (Fahrenheit - 32)/1.8;
Kelvin = Celsius + 273;
break;
}
case 'K': case 'k': case '3':
{
while(1)
{
puts("Введите Кел: ");
if (!scanf("%f", &Kelvin))
{
fflush(stdin);
puts("Ошибка ввода. Повторите попытку...\n\n");
}
else
break;
}
Celsius = Kelvin - 273;
Fahrenheit = 1.8 * Celsius + 32;
break;
}
default:
{
puts("Введены неправильные значения\n");
return -1;
}
}
printf("Цельс. %f\n", Celsius);
printf("Фаренг. %f\n", Fahrenheit);
printf("Кель. %f\n", Kelvin);
return 0;
}
Объяснение кода листинга программы
- Ввод значения температуры в требуемой шкале
- Проверка корректности ввода значения температуры
- Перевод температуры из одной шкалы в другую
- Вывод значений температуры в каждой шкале