1.其实“4.3”中的“4”是有用处的,“4”代表输出数字的宽度设置,但如果你输出数字的宽度大于你所设置的数字宽度“4”,则数字全
部输出,如果你输出的数字的宽度小于你所设置的数字宽度“4”,则用空格填满。
比如printf(“*%f,%8.3f*\n”,3.14,3.1415);
则输出:*3.140000,---3.142*(-表示空格)[“8”正的是右对齐,负的是左对齐]
2.我后面输出的是*d(4)=37777777776*d(5)=37777777776*d(6)=37777777776*
如果输出的是177776的话,你的答案应该对的,应该输出*d(4)=177776*d(5)= 177776*d(6)=177776 *;
3.我输出的结果是
*d(1)=3.500000e+000*d(2)=3.5000e+000*d(3)=3.5000e+000*
*d(4)=-3.500000e+000*d(5)=-3.500000e+000*d(6)=-3.50000e+000*
d(3)%10.4e的“10”是指数字宽度,“4”指小数点后面四位;
4.你的意思是说把printf("x=%d y=%d *sum*=%d\n",x,y,x+y);改成printf("x=%d x=%d x=%d\n",x,y,x+y);吗?
那结果会输出 x=1 x=2 x=3
10 Squared is: 100
5.我输出的结果是:5.681000e+002
e型的小数保留6位 ,指数部分保留3位
6.#include
main()
{
int i;
for(i=1;i<=5;i++) printf(“##%*d\n”,i,i);
}
解析:printf(“##%*d\n”,i,i);中的第一个 i是设置输出数字的宽度,第二个i是输出的数字;
号的作用是【可以使同一输出语句中的输出宽度得以改变】
for循环内,每次循环先输出##然后设定要输出的数字宽度,再输出数字,因为你的宽度i是正的,所以输出数字是右对齐。
7.很奇怪,你的输出结果怎么和我的不一样呢,我输出的就是
3.1415926000##
3.1415926000 ##
你自己再试试看~
8.你好,我输出的结果是:a=+00325(中间1个空格)x=+3.141593e+000
a=+00325因为你输出设定的宽度为6,其中“+”也算在其中的;而x=+3.141593e+000在上面第四题已解释
9.我输出的答案基本和你所猜想的一致,是
(1) x=7281,x= 7281,x= 16161,x= 1c71,x= 7281
(2) x=7281,x=7281 ,x=$7281 ,x=$007281,x=%06d
(3) x=+7281,x= +7281,x=+0007281
只有(3)有点不一样,自己再检查检查吧,问题跟上面的都差不多,我想你应该能够解决的!
希望我的答案能让你满意!谢谢~
怎么还没人回答,我时间少了些,不染到帮你下,还有你题目有点不 明白