有个C的程序问题我不太明白。
这是源程序。
#include <stdio.h>
void main(void)
{
int x=15;
float y=38.3576278;
double z=256.3645287;
char m= 'p ';
printf( "x=%d,%5d,%o,%x\n ",x,x,x,x);
printf( "y=%f,%5.4f,%e\n ",z,z);
printf( "z=%f,%8.4f\n ",z,z);
printf( "m=%c,%8c\n ",m,m);
}
答案:
x=15, 15,17,f
y=38.357628,38.3576,3.83576e+01
z=256.364529,256.3645
m=A, A
我的问题是:
1,printf第二行,y=%f,%f定义的精度是多少?为什么答案四舍五入了最后一位?
2,printf第二行,那个%5.4f中的.4我知道是小数点后的第四位,但5是什么意思
啊?如果变成%6.4f,%7.4f那答案又是多少呢?
3,printf第二行,%e的那个答案是怎么算的啊?
4,printf第四行,m值最后为什么是A?前面不是char m= 'p ';吗?我觉得答案应该是p的呀!
就这四个问题,我是初学者,而且是自学的,所以麻烦各位说的详细点,谢谢了!
[解决办法]
1,printf第二行,y=%f,%f定义的精度是多少?为什么答案四舍五入了最后一位?
为什么不去查一下f表示什么呢?去查一下float的精度是多少
2,printf第二行,那个%5.4f中的.4我知道是小数点后的第四位,但5是什么意思
啊?如果变成%6.4f,%7.4f那答案又是多少呢?
为什么自己不试试呢?试试改成50.4看看是怎样的你就知道什么意思了
3,printf第二行,%e的那个答案是怎么算的啊?
e是什么知道吗?知道科学计数法不?对比一下38.3576,3.83576e+01这两个有什么区别
4,printf第四行,m值最后为什么是A?前面不是char m= 'p ';吗?我觉得答案应该是p的呀!
你是什么什么编译器的?我试了一下是p哦