又这样一段程序:
#include<stdio.h>
float fun(float *a,int n)
{
float aver=0;
int i;
{
for(i=0;i<n;i++)
aver=aver+a[i];
aver=aver/n;
}
return(aver);
}
void main()
{
float score[30]={90.5,72,80,61.5,55},
aver;
aver=fun(score,5);
printf("%f\n",aver);
}
呵呵,刚运行过,这段程序上对的,但是如果我把之定义的函数中吧for函数括起来的大括号个去掉的话,业运行了,结果一样,如果在大括号个拿掉的情况下,怎么不循环一次输出一个值呢,而是最后输出了平均值呢,迷惑中。。。。。。。。。。。。。那位高人帮帮忙啦!就十分啦,全部给出。。。。。。。。。。。。
为什么不可能呢,为见有的程序就是循环一次,给出一个值滴啊。。。。。。。。。。。。。
追答如果是想知道前面的i个数的平均数的话,那你直接在for后面用大括号括起来,然后再大括号里面增加一句打印就ok了。如下:
for(i =0; i < n; i++) {
aver=aver * i + a[i]; //这里×i是为了使前i项的和不变
aver=aver/i;
printf("%f\n", aver);
}
参考资料:JI
如果您能再解释更清楚一下就更给力了
。。。。。。。。。。。。。。
float fun(float *a,int n)
{
float aver=0;
int i;
{ //这个大括号有没有都无所谓
for(i=0;i<n;i++)//
{
aver=aver+a[i];
}
aver=aver/n;//for循环执行完之后才执行这一句。
//}
return(aver);////fun函数结束,返回一个值,所以avear只有一个值
}