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.

#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
注意,数字前面有个小数点。

int 怎么提供c ? 没看明白,保留两位小数是%.2f

C的ascll码为67

int a=67;
printf("%c",a);