请问一个c问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 14:26:34
1#include <stdio.h>
main()
{
float x=67.8564,y=-789.124;

printf("%-10f,%-10f\n",x,y);

}

请问为什么结果是
67.856400 ,-789.124023

多了几位吧。

2请问

char c1,c2;
c1="a";
c2="b";
printf("%d %d",c1,c2);

显示的是-108,-106,-104,-102....

float实际只是个近似数,
你输入2.3,
实际上计算机是以2.3000001处理,
所以答案略有偏差.

%f输出小数点后默认6位,
不足补零.

--------------------
这个就错的多了,
首先c1="a"给char赋值了字符串,
应该为c1='a'
打印字符printf("%d %d",c1,c2)
用了%d(%d也可以,不过打印出来是asc2码),
为%c就是a了.

1,flaot 只有6位有效数字,要求输出的位数超出6位的话,只能随机输出,因为你不知道内存中存的是什么。

2,你这个在VC中编译肯定出错的,"a"属于字符串,包含两个字符,'a'和结束符'\0'(转义字符),是无法赋给字符型变量的。
你应该赋值为 c1='a';c2="b";
输出字符是%c,整型输出也可以%d,输出的是ASC2码值。