c++程序题

[复制链接]
查看11 | 回复1 | 2008-7-6 20:45:02 | 显示全部楼层 |阅读模式
# include
using namespace std;
void f(float *p,float &b,int n)
{for(int i=0;i<5;i++)

b+=*p++;

b/=n;
}
const int N=5;
void main(void)
{int i;
float a[]={1,2,3,4,5},c=0;
f (a,c,N);
cout<<"c="<<c<<endl;
}
要求程序的输出结果
结果为3
但是我不知道为什么
请高手分析一下

回复

使用道具 举报

千问 | 2008-7-6 20:45:02 | 显示全部楼层
f不就是个求平均值的程序么其中float &b是按引用传递,也就是函数里面的b改变了,主调函数里的实参也会改变,于是最后c就是数组a的平均值3.0结果应该为c=3.0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行