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日

悬赏问题

  • ¥15 表达式必须是可修改的左值
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题