我爱橙 发表于 2022-5-3 23:34:13

EX2.16 温度转换 √

本帖最后由 我爱橙 于 2022-5-4 11:03 编辑

编写程序,输入一个华氏温度,要求输出摄氏温度。公式为 C=5*(F-32)/9,结果取2位小数。

输入格式:
"%lf"

输出格式:
"%.2f"

输入样例:
在这里给出一组输入。例如:

50
输出样例:
在这里给出相应的输出。例如:

10.00


TEST1:有问题但能输出正确结果10?
#include<stdio.h>

main()

{

        float C,F=50;
        scanf ("请输入一个华氏温度:%lf",&F);
        C=5*(F-32)/9;
        printf("%.2f",C);
       
        return 0;

}


TEST2:自觉没问题但输出结果错误为-17.78
#include<stdio.h>

main()

{

        float C,F;
        printf("请输入一个华氏温度:");
        scanf("%lf",&F);
        C=(F-32)*5/9;
        printf("%.2f",C);
       
        return 0;

}

isdkz 发表于 2022-5-4 00:05:22

#include<stdio.h>

main()

{

      float C,F;
      printf("请输入一个华氏温度:");
      scanf("%f",&F);                              // float 类型使用 %f
      C=(F-32)*5/9;
      printf("%.2f",C);
      
      return 0;

}

风车呼呼呼 发表于 2022-5-4 00:10:43

Test1:别拿scanf当成Python里的input,双引号里除了格式化符号,你写的其他东西在输入的时候都要原封不动的抄一遍
Test1 & Test2:给float赋值用%f,给double赋值用%lf,既然题目要求输入格式是%lf,就用double定义C和F

临时号 发表于 2022-5-4 00:27:57

使用%lf是题目要求,但%lf是double型的格式字符,你这里使用float会损失精度,从而输出-17.78,可将类型改为double型
#include <stdio.h>

int main()
{
        double C;    // 这里得使用double型
        double F;    // 这里得使用double型
       
        printf("请输入一个华氏温度:");
        scanf("%lf",&F);
       
        C=5*(F-32)/9;
        printf("%.2f",C);
       
        return 0;
}

xyyzzjw 发表于 2022-5-4 09:29:32

学习到了。
页: [1]
查看完整版本: EX2.16 温度转换 √