注册 登录
编程论坛 C++教室

如何用函数返回值

怪怪女巫 发布于 2007-08-14 18:29, 1914 次点击
编写函数fun,函数首部为 int fun(double &ave)其功能是:输入全班学生成绩(以负数结束输入,统计学生人数,作为函数值返回主调函数,并计算平均分,通过参数ave返回主调函数.
#include<iostream.h>
int fun(double &ave);
main()
{
int n,k=0,s=0;
double ave
cout<<"input integers:";
while(1);
{
cin>>n;
if(n<=0)
break;
k++;
s+=n;
}
cout<<"k="<<k<<'\t'<<"ave="<<ave<<endl;
int fun(double &ave)
{
if(n<=0)
return 1;
&ave=s/k;
return 0;
}
大家帮我看看吧.由于是初学者,所以肯定有低级错误的.希望大家多多包函啊
11 回复
#2
怪怪女巫2007-08-14 18:30

大家帮我看看错在哪里把
非常感谢啊

#3
terisevend2007-08-14 19:53

C++不同于C, 函数一定要定义其类型...
main就错了...应该是int main
double ave 漏了分号... double ave;
函数体内不能定义函数...
求平均的函数在main中没被调用...


#4
yunjie20082007-08-14 22:13

函数不能嵌套啊
引用只能在定义的时候用引用算符;

#include<iostream.h>

int fun(double &ave,int k); //声明

void main()
{
int n,k=0;
double ave=0;

cout<<"input integers:";
while(1)
{
cin>>n; //n表示成绩
if(n<=0) break;
k++;
ave+=n; //s表示总分
}
fun(ave,k);
cout<<"学生人数:k="<< k <<'\t'
<<"平均分:ave="<<ave<<endl;
}

int fun(double &ave,int k)
{
if(k<=0) return 1;
ave=ave/k;
return 0;
}
能运行的原程序

#5
yunjie20082007-08-14 22:16

你写程序的时候记住加注释啊

#6
野比2007-08-15 00:52
main函数后面那个大括号忘了么? " } "
#7
blueness212007-08-15 14:46
以下是引用yunjie2008在2007-8-14 22:13:34的发言:

函数不能嵌套啊
引用只能在定义的时候用引用算符;

#include<iostream.h>

int fun(double &ave,int k); //声明

void main()
{
int n,k=0;
double ave=0;

cout<<"input integers:";
while(1)
{
cin>>n; //n表示成绩
if(n<=0) break;
k++;
ave+=n; //s表示总分
}
fun(ave,k);
cout<<"学生人数:k="<< k <<'\t'
<<"平均分:ave="<<ave<<endl;
}

int fun(double &ave,int k)
{
if(k<=0) return 1;
ave=ave/k;
return 0;
}
能运行的原程序

#8
怪怪女巫2007-08-15 15:48

在一些细节我以后会注意的(谢谢大家拉)
恩 可是函数只有定义的时候不可以嵌套把
不过 楼上的程序有问题 是一个空程序啊
可以看一下 告诉我正确代码吗

#9
rediums2007-08-15 18:24

下面这段代码我用visual c++ 6.0运行通过

#include <iostream>
using namespace std;

int fun(double& ave);

int main(void)
{
int n=0;
double ave=0;

n=fun(ave);
cout<<"n="<<n<<'\t';
cout<<"ave="<<ave<<'\n';

return 0;
}


int fun (double& ave)
{
int n=0;
double temp=0;
double s=0;

cout<<"input integers:";
while(1)
{
cin>>temp;
if(temp<=0) break;
n++;
s+=temp;
}

ave=s/n;

return n;
}

#10
怪怪女巫2007-08-15 21:01
以下是引用rediums在2007-8-15 18:24:38的发言:

下面这段代码我用visual c++ 6.0运行通过

#include <iostream>
using namespace std;

int fun(double& ave);

int main(void)
{
int n=0;
double ave=0;

n=fun(ave);
cout<<"n="<<n<<'\t';
cout<<"ave="<<ave<<'\n';

return 0;
}


int fun (double& ave)
{
int n=0;
double temp=0;
double s=0;

cout<<"input integers:";
while(1)
{
cin>>temp;
if(temp<=0) break;
n++;
s+=temp;
}

ave=s/n;

return n;
}

这个程序运行以后,可以输入成绩 但是输入后不会显示学生个数与平均分
我都快郁闷死了 不知道是什么原因 还希望大家在费心一下
告解一下,真是麻烦大家了啊

#11
rediums2007-08-15 21:39

输入完成绩以后要再输入随便一个负数,按回车以后就会显示结果的
你输入负数了吗?

#12
怪怪女巫2007-08-16 08:20
哦 原来如此啊
非常感谢啊
1