#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类型~