m0_67966063 2022-03-11 15:12 采纳率: 100%
浏览 54
已结题

C语言问题不能够理解

img

C语言
#include <stdio.h>
int main()

float f,c;
f=64.0;
c=(5/9)*(f-32);
printf( "f=%f\nc=%f\n" , f , c);
return 0;

要求:请输出结果为保留2位小数,并显示格式为数值后面+摄氏温度符号C,该符号不能直接输出,请设置为由int a提供。例如:17.77C.

  • 写回答

3条回答 默认 最新

  • breeze亭瞳 2022-03-11 18:13
    关注

    #include <stdio.h>
    int main()
    {
    int i;
    float f,w;

    f=64.0;
    w=(5.0/9)*(f-32);
    i=67;
    printf("%.2f%c",w,i);
    

    return 0;
    }
    你需要注意三个:
    1.整数相除的问题:
    第一种情况,被除数除以除数,小数部分会被抹去。
    比如:9/2=4,-9/2=-4
    第二种情况,被除数如果小于除数,结果会为0。
    比如:1/2=0
    (像你上面那个5/9算出来会直接为0)
    第三种情况 ,不管是被除数,还是除数只要有一个为浮点数,即结果为浮点数。
    比如:1.0/2=0.5
    (你的代码就需要改为,5.0/9或是5/9.0,结果都会是浮点数。)

    2.ASCII码值的转换:
    26个字母在ASCII码表里都有对应的ASCII值,大写的C对应的ASCII码值是67(大小写字母对应的ASCII码值有区别,相差值为32)
    在代码中,那个变量i是int型的
    你想要的是C这个字符,直接用字符的格式控制符%c即可。虽然int的格式控制符是%d,不过没关系,在ASCII码表里的字符,在int和char类型之间可以转换,不会报错的。
    即最后i输出的就是大写的C。
    3.小数位数的控制:
    保留2位小数,就是%.2f
    保留3位小数,就是%.3f
    注意,数字前面有个小数点。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月26日
  • 已采纳回答 3月18日
  • 创建了问题 3月11日

悬赏问题

  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序