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

帮忙看看这个问题

zbsilent 发布于 2011-04-02 13:48, 599 次点击
/*要求输入最多是个成绩,遇到0跳出,要求求平均数*/
#include<iostream>
int average(int *);
int main()
{
    int n=10,k,i;
   
    int *ps=new int[n];
    std::cout<<"Please input is at best an golf scores"<<'\n';
    for(i=0;i<n;i++)
    {
        std::cin>>*(ps+i);
        if(*(ps+i)==0)
            break;
        else
            continue;
    }
    std::cout<<"这 "<<i<<" 个成绩如下:\n";
    for(k=0;k<i;k++)
    std::cout<<*(ps+k)<<" ";
    std::cout<<"平均成绩为"<<'\n'<<average(ps);//平均数这里的函数调用不出结果。求修改。
    delete []ps;
    return 0;
}
int average(int *y)
{
    int j,ave,sum=0;
    for(j=0;j<10;j++)
    {
        sum+=*(y+j);
    }
    ave=sum/j;
}
在线等,谢谢!

[ 本帖最后由 zbsilent 于 2011-4-2 13:52 编辑 ]
3 回复
#2
最近不在2011-04-02 15:51
你的函数忘记写返回值了,编译器应该有提示吧.
然后就是你的函数,应该再提供一个参数用于表示数据长度.数据长度不一定是10个的
#3
paoshituan2011-04-05 17:15
*ps=new int[n];     new int[n]是什么意思?用函数初始化,int[n]不与C的规定向违背吗?
#4
bcugu13142011-04-05 22:17
这里好像是用new运算符定义一个多维数组变量或数组对象
1