大家好,这个程序一直显示不对,请帮一下忙,谢谢!

#include

void main()
{
float celsius=0,True_celsius=0,True_salary=0,salary=0;
printf("Enter the number of celsius>\n");
scanf("%1f",&celsius);
printf("Enter the number of salary>\n");
scanf("%1f",&salary);
True_celsius=1.8*celsius+32.0;
True_salary=(salary-5000.00)*0.20+1425.00;
printf("True_salary is %.2f>\n",True_salary);
printf("True_celsius is %.2f>\n",True_celsius);

}

警告是double到float丢失数据,输入数据结果也不对

你都有警告了...你把你所有的float类型改成double不就行了,double转float会丢失精度的

首先#include 这里你没有包含一个头文件,你先包含一个#include ,就可以了,已经帮你在开发环境下测试了

但是变量都声明为double时输出结果是很长一串,加%。2f后还是那样,何解啊?

把float类型换成double类型试试

头文件改成#include

你把你所有的float类型改成double不就行了,double转float会丢失精度的

注意标点符号是不是中文的标点符号,要改成英文的

而且输入数据无法参与运算,输入 第一个scanf数据后程序就执行完毕了。

#include

int main()
{
float celsius=0,True_celsius=0,True_salary=0,salary=0;
printf("Enter the number of celsius>\n");
scanf("%1f",&celsius);
rewind(stdin); //注意吸收回车
printf("Enter the number of salary>\n");
scanf("%1f",&salary);
True_celsius=1.8*celsius+32.0;
True_salary=(salary-5000.00)*0.20+1425.00;
printf("True_salary is %.2f>\n",True_salary);
printf("True_celsius is %.2f>\n",True_celsius);
return 0;
}

不过我搞不懂你要算什么,好像计算方法有问题。

第一个回车作为第二个scanf的输入了,所以敲了第一次输入,程序duang就完了

定义的celsius是float类型,而scanf( )输入时,你用的格式控制符是“lf”是double类型~
或者修改celsius类型为double,或者修改scanf( )输入数据的格式控制符为"f"float类型~