Некорректно работает код перевода дюймов в сантиметры - C (СИ)
Формулировка задачи:
Привет)
Задание.
Перевести дюймы в см.
т.е. ввожу 2i, должно вывести 5.08 см.
В чем ошибка? Я может чо то не понимаю, проверка вроде правильно стоит.
#include <stdio.h> int main() { int x; char ch; ch=getchar(); scanf("%d%c",&x,&ch); //ch = getchar(); if (x == 2 && ch == 'i') printf("%d%c cm\n",x*2.54,ch); //2i = 5.08cm }
Решение задачи: «Некорректно работает код перевода дюймов в сантиметры»
textual
Листинг программы
#include <stdio.h> #define INCH_CM_RELATION (2.54) void clear_input(void) { char ch; while ( scanf("%c", &ch) == 1 && ch != '\n' ) ; } int main(void) { double value; char dimension[2]; while ( printf("> ") && scanf("%lf%1s", &value, dimension) == 2 ) { switch ( *dimension ) { case 'i' : case 'I' : printf("%.2f cm\n", value * INCH_CM_RELATION); break; case 'c' : case 'C' : printf("%.2f i\n", value / INCH_CM_RELATION); break; default : printf("Wrong dimension!\n"); } clear_input(); } return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки ввода-вывода
- Определение константы, представляющей соотношение дюймов и сантиметров
- Функция для очистки ввода с клавиатуры
- Основной цикл программы
- Ввод значения и единицы измерения с клавиатуры
- Проверка введенного значения и единицы измерения
- Передача значения и единицы измерения в функцию для перевода в другую единицу измерения
- Вывод результата на экран
- Очистка ввода с клавиатуры после каждой операции
- Возврат значения 0, указывающего на успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д