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.
C语言问题不能够理解
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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
注意,数字前面有个小数点。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
- ¥15 正弦信号发生器串并联电路电阻无法保持同步怎么办
- ¥15 划分vlan后,链路不通了?
- ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 Centos / PETGEM
- ¥15 划分vlan后不通了
- ¥20 用雷电模拟器安装百达屋apk一直闪退
- ¥15 算能科技20240506咨询(拒绝大模型回答)
- ¥15 自适应 AR 模型 参数估计Matlab程序