2012-09-28 4 views
0

Температура в градусах Фаренгейта вводится через клавиатуру. Теперь мне нужно написать программу для преобразования этой температуры в градусы по Цельсию.Ошибка возникает при компиляции кода C

Так вот формула:

°C = (°F - 32) x 5/9 

Пример ввода/вывода:

Enter Temperature of Dhaka in Fahreinheit: 98.6 
Temperature of Dhaka in Centigrade 37.0 C 
Now, i have tried with this, but not works. 

Код:

# include <stdio.h> 

void main() 
{ 
    float C; 
    printf("Pleas Enter Your Fahreinheit Value to see in centrigate="); 
    scanf("%d",&C); 

    printf(C); 

    float output; 
    output=(C-32)*(5/9); 

    printf("The centrigate Value is = %.2lf\n\n" ,output); 
} 

Может кто-нибудь сказать мне, что случилось?

+0

Если вы получили сообщение об ошибке, всегда указывайте это сообщение об ошибке. – Mat

+0

Нет градусов по Цельсию. Существует только шкала Celcius. –

+0

«Это не работает» не так точно, как описание ошибки. –

ответ

8
void main() 
{ 
    float far; 
    printf("Pleas Enter Your Fahreinheit Value to see in centrigate="); 
    scanf("%f",&far); 

// printf(C); 

float cel; 
cel =(far-32)*(5.0/9.0); 

printf("The centrigate Value is = %.2lf\n\n" ,cel); 
} 
  1. 5/9 это целое подразделение, которое дает вы 0. Вам нужно плавать. Итак, сделайте 5.0/9.0, чтобы получить десятичную часть.
  2. И я не знаю, почему вы сделали printf(C);. Это просто не работает. Используйте

    printf("c = %f",c); 
    
  3. спецификатор формата для поплавка %f. %d используется для целых чисел.

  4. Предоставить C для хранения farenheit. Теперь это не так. Но позже может возникнуть путаница. Попытайтесь использовать значимые имена в своем коде, чтобы он был читабельным. Чем дольше название, тем лучше.
3

Проблемы:

  • спецификатор формата в scanf() должен быть %f, не %d который является для int:

    /* scanf() returns number of assignments made. 
        Check it to ensure a float was successfully read. */ 
    if (1 == scanf("%f", &C)) 
    { 
    } 
    
  • Первый аргумент printf() должен быть const char*, не float :

    printf("C=%f\n", C); 
    
+0

У меня проблема. Почему в комплекте с 0.0000000 можно восстановить этот код. благодаря – user1706035

0

Линия printf(C); должна быть printf("%f\n", C);

0

printf("%f\n",C) вместо printf(C) и float output должны быть самого начало кода, как float C

1

Вы должны сделать некоторые изменения, увидеть комментарии по коду:

# include <stdio.h> 

void main() 
{ 
    float C; 
    float output; //Better to declare at the beginning of the block 

    printf("Pleas Enter Your Fahreinheit Value to see in centrigate=\n"); 
    scanf("%f",&C); //Scanf need %f to read float 

    printf("%f\n", C); //becareful with the printf, they need format too. 

    output=(C-32)*(5.0/9); //if you put 5/9 is not a float division, and returns int. 
          //you should add 5.0/9. 

    printf("The centrigate Value is = %.2lf\n\n" ,output); 
} 

Я думаю, вот и все.

Смежные вопросы