将温度从摄氏温度转换为华氏温度
我编写了一个程序,将温度从摄氏温度转换为华氏温度。当我进入c
,代码工作正常,但是当我进入f
,它给了我一个随机数:将温度从摄氏温度转换为华氏温度
#include <stdio.h>
int main (void){
float f,c;
printf("x=Ende c=Umrechnung c->f f=Umrechnung f->c:");
if(scanf("c",&c)==c){
printf("Grad Celisius =");
scanf("%f",&c);
f=(c*1.8)+32;
printf("%.2f Grad Celisius sind %.2f Grad Fahreiheit\n",c,f);
}
else if(scanf("f",&f)==f){
printf("Grad fahrenheit =");
scanf("%f",&f);
c=(f-32)/1.8;
printf("%.2f Grad Fahrenheit sind %.2f Grad Fahrenheit",f,c);
}
return 0;
}
我怎样才能解决我的问题?
您没有正确使用scanf()
命令。我修改你的代码一点点,这对我的作品:
#include <stdio.h>
int main (void){
float f,c;
char ch;
printf("x=Ende c=Umrechnung c->f f=Umrechnung f->c:");
scanf(" %c", &ch);
if(ch=='c'){
printf("Grad Celsius =");
scanf("%f",&c);
f=(c*1.8)+32;
printf("%.2f Grad Celsius sind %.2f Grad Fahrenheit\n",c,f);
}
else if(ch=='f'){
printf("Grad Fahrenheit =");
scanf("%f",&f);
c=(f-32)/1.8;
printf("%.2f Grad Fahrenheit sind %.2f Grad Celsius",f,c);
}
return 0;
}
基本上,您已经阅读字符(ch
)只有一次,后来把它比作你的程序提供的选项。请注意0行中" %c"
的空格字符。可能需要使代码正常工作,如here所述。
我想你也想对你的代码进行一个循环,所以有必要让用户输入一个x
来结束程序。目前,如果您未输入c
或f
,程序将终止。该程序在一次计算完成后也会终止。
顺便说一下,我还在您最近的printf()
中将Celsius
更改为Fahrenheit
。我想你在那里混淆了那些话。我也将Celisius
更改为Celsius
。
它的作品谢谢;;你救了我 –
我很高兴得到了帮助!随意[接受我的回答](http://meta.stackexchange.com/q/5234/294055),如果你觉得它对你有用:) – honk
当然,我会感谢 –
“这是错误的”不是错误描述。你期望发生什么,发生了什么? – fuz
当我执行程序并键入f将温度从华氏温度转换为摄氏温度时,它给了我一个随机数 –
if(scanf(“c”,&c)== c)你为什么写这个? – Cherubim