#include <stdio.h>
int main (void)
{
int a[10]={10},d;
int s;
for(s=0;s<10;s++)
d+=a[s];
printf("%f",d/10);
return 0;
}为什么得不到正确的值,求老师指点
最后的是%i
printf("%f",d/10)这行代码的输出控制有误,因为d定义的是int型,d/10还是int型,应该使用%d,而不是%f,%f是单精度浮点型数据。
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。
格式字符有d,o,x,u,c,s,f,e,g等。
1.%d整型输出,%ld长整型输出,
2.%o以八进制数形式输出整数,
3.%x以十六进制数形式输出整数,
4.%u以十进制数输出unsigned型数据(无符号数)。
5.%c用来输出一个字符,
改过之后运行结果:
扩展资料:
需要说明的是:
2、每个源文件可由一个或多个函数组成。
3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。
4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。
5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。
6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
参考资料:
为什么我的书会这么写,虽然我试了好几次都不行
追答前面说错了一个:“a中只有a[0]==10,a[1]~a[9]都是垃圾数”应该是“a中只有a[0]==10,a[1]~a[9]都是0”。代码改成
int main (void)输出就有平均值1.000000了。若将a[10]={10}改成a[10]={10,9,8,7,6,5,4,3,2,1}则输出就是5.500000了。
本回答被提问者和网友采纳