我正在尝试进行C ++课程的作业。问题在下面
创建一个C程序,使用以下命令在屏幕上打印两列 华氏温度和等效温度 摄氏度。
左栏显示以华氏温度为单位的温度。右栏 显示摄氏温度。
从0华氏度开始,一直到300度 华氏温度。采取20度的步幅。摄氏1度 逗号后面的位置(使用“%10.1f”作为格式说明符)。也 打印标题文本。
使程序维护不敏感,这意味着启动- 并且最终温度和步长必须易于调整。
这是我的C ++代码
{
// TEMPERATURE CONVERSION
float celsius;
float startrange;
float endrange;
float increment;
printf("Enter start range in Fahrenheit \n");
scanf("%f",&startrange);
printf("Enter end range in Fahrenheit \n");
scanf("%f",&endrange);
printf("Enter increments in Fahrenheit \n");
scanf("%f",&increment);
float counter;
for(counter=startrange; counter<endrange; counter = counter + increment)
{
celsius=(5.0/9.0)*(counter-32);
printf("%f \t","%f \n",counter,celsius);
}
return 0;
}
CMD屏幕输出仅将所有结果打印为0。不确定我的方法有什么问题-我正在将用户输入的值分配给输入,并且循环应该只打印输出。
我在屏幕抓取中遇到错误:
答案 0 :(得分:2)
您的printf
调用使用"%f \t"
作为格式说明符,并传递字符串文字"%f \n"
作为要格式化的值。于是程序表现出未定义的行为,因为%f
指定者期望的参数类型为double
,而不是char*
第三个和第四个参数-实际的浮点值-根本没有任何对应的格式说明符。