Некорректно работает код перевода дюймов в сантиметры - 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;
}

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

  1. Подключение стандартной библиотеки ввода-вывода
  2. Определение константы, представляющей соотношение дюймов и сантиметров
  3. Функция для очистки ввода с клавиатуры
  4. Основной цикл программы
  5. Ввод значения и единицы измерения с клавиатуры
  6. Проверка введенного значения и единицы измерения
  7. Передача значения и единицы измерения в функцию для перевода в другую единицу измерения
  8. Вывод результата на экран
  9. Очистка ввода с клавиатуры после каждой операции
  10. Возврат значения 0, указывающего на успешный конец работы программы

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


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

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

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