printf("The Centigrade is %.2f.\n",&b);
printf("The Fahrenheit is %.2f.\n",&b);
这两句中,b前面的&去除。(这个是语法的错误)
-->
printf("The Centigrade is %.2f.\n", b);
printf("The Fahrenheit is %.2f.\n", b);
。。
其次就是,这段代码的逻辑是什么没怎么懂。。
if(a=1),,这句是什么意思?是想给a赋值?如果是判断a是否为1的话,应写成
if (a == 1),两个等号是判断是否相等,
若是a == 1,接下来是要做什么?算b的值,并且打印出b的值么?
那么应加上大括号,如下:
if (a == 1)
{
b=(b*9/5)+32;
printf("The Centigrade is %.2f.\n",&b);
}
else
{
b=(b-32)*5/9;
printf("The Fahrenheit is %.2f.\n",&b);
}
大括号的加入,使得两句为一个整体。不加括号的话,else则没有与之对应if,编译器会很困扰,会报错。
改正:
#include
int main(void)
{
double a,b;
scanf("%lf%lf", &a, &b);
if(a=1)
{
b=(b*9/5)+32;
printf("The Centigrade is %.2f.\n", b);
}
else
{
b=(b-32)*5/9;
printf("The Fahrenheit is %.2f.\n", b);
}
return 0;
}
语法上就是这样子改正了。
但是,你这个程序我真的不敢恭维,它究竟是要实现什么功能呢??
是摄氏温度与华氏温度的转换吗?是a的值是1时,就将b转换成摄氏温度,而非1时,就将b转换成华氏温度吗??那么你至少,if()括号内的语句应该是 a == 1才对吧,怎么会是 a = 1呢?
a = 1是赋值表达式,是将1的值赋给变量a. 最后,printf 和 scanf那么基本的函数你都不会正确使用,你该努力学习才是啊。
1、scanf("%lf%lf",&a,&b);
2、if和else后面两句要用大括号括起来
if下面2个语句用括号括起来
scanf("%d%d",&a,&b); 你定义的是double类型,输入参数的格式有问题