求助:一个C语言的题!

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:37:05
#include <stdio.h>
main()
{
float a=12345.678;
int b=12345;
printf("\n%21.10f:a1",a)
}
这是我在学C语言时遇到的一个题,始终不知道该怎么做。还请各位高人指点!3Q。
就是请解释一下这个题该怎么做,结果会输出什么,我也看过答案,可是对答案不理解。
晕,怎么会错呢。这是我从书上抄下来的。我知道结果,可是不知道怎么来的。全题如下:
#include <stdio.h>
void main()
{
float a=12345.678;
int b=12345;
printf("\n%21.10f:a1",a);
printf("\n%2.2f:a2",a);
printf(\n%10d:b1",b);
}
我就是想知道第一个输出语句是什么意思。答案是:12345.6777343750:a1 12345.68:a2 12345:b1
输出语句绝对没有问题,在TC上这段程序是可以运行的。结果就是上面我写出来的那些。我只是想知道,12345.6777343750中的小数部分是怎么来的。

printf("\n%21.10f:a1",a);

\n 换行

%21.10f 输出格式,单精度,最高可到21位,保留小数点后10位

:a1 原样输出

小数部分自己无法计算,是TC算法编译时电脑自己加的,由算法决定,其实并不精确。

你这个好象不对哦 输出语句不对哦;printf("\n%f;a");才可以正常输出实数a.

不知道你想表达什么??????????????

你的第一个输出语句表达上有错误,所以没有办法回答。

printf("\n%21.10f:a1",a); \\打印输出 a 精确到小数点后十位
printf("\n%2.2f:a2",a); \\打印输出 a 精确到小数点后两位
printf(\n%10d:b1",b); \\打印输出 b 精确到整数

在第六行的最后面加个分号就可以了
因为如果你不加 分号的话就不能算是完整的C语言语句,编译时是通不过的