浮点数的精确度怎么控制?
#include <stdio.h>
int main()
{
char a[4];
int i;
float C,step,low,high,F;
for (i=0;i<4;i++)
scanf("%c",&a[i]);
scanf("%f%f%f",&low,&high,&step);
if (a[0]=='C')
{
printf(" C -> F\n");
while(low<=high)
{
C=((F+32)*9)/5;
printf("%.1f -> %.1f\n",F,C);
low = low + step;
}
}
else if(a[0]=='F')
{
printf(" F -> C\n");
while(low<=high)
{
F=(C-32)*(5/9);
printf("%.1f -> %.1f\n",C,F);
low = low + step;
}
}
}
Description
已知华氏温度F,转换为摄氏温度C的公式为C=(F-32)*5/9。
输出给定范围(从low到high)和步长(step)的摄氏——华氏温度转换表
Input
第1行若为“C->F”表示输出:摄氏——华氏温度转换表,若为“F->C”表示输出:华氏——摄氏温度转换表。
第2、3行为两个整数:high和low,其值在-100到200之间。
第4行为step,step精确到小数点后1位。
Output
输出第一行为C和F,分别表示摄氏和华氏,与小数点对齐。若输出摄氏——华氏温度转换表,则C在前、F在后;反之,则输出华氏——摄氏温度转换表。
从输出的第2行开始为从温度low到温度high(包括low和high)的转换表,温度输出精确到小数点后1位,表格被“->”分为两个宽度相同的部分,其它的测试样例也不会给出超出宽度的数据,格式详见sample。
哪里出错了?