| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 559 人关注过本帖
标题:求助看一下这道题我哪里错了
只看楼主 加入收藏
zr1234561555
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-7-17
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
求助看一下这道题我哪里错了
求n个学生的平均成绩,最大成绩,最小成绩,总成绩


#include <iostream.h>
#include <math.h>
void main()
{
    int n,i,max,min,sum=0;
    int a[];
    float ave;
    cout<<"学生总人数";
    cin>>n;
    for (i=0;i<n;i++)
    {
     cout<<"输入学生分数";
     cin>>a[i];
     sum+=a[i];
    }
    min=max=a[0];
    for (i=1;i<n;i++)
    {
        if (a[i]<max)
        min=a[i];
        else max=a[i];
    }
    ave=float(sum/n);
    cout<<"学生的总成绩:"<<sum<<endl;
    cout<<"学生的平均成绩:"<<ave<<endl;
    cout<<"学生最低分:"<<min<<endl;
    cout<<"学生最高分:"<<max<<endl;
}
搜索更多相关主题的帖子: include 总成绩 
2009-07-17 20:29
liudali
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2009-7-19
收藏
得分:0 
粗略看了一下
最小值肯定求错了。
求最小值肯定a[i]<min,怎么可能和max有关系呀。
2009-07-19 10:07
mos6
Rank: 2
等 级:论坛游民
帖 子:18
专家分:27
注 册:2009-4-19
收藏
得分:20 
回复 楼主 zr1234561555
在你的int a[];这里出错了,在VC,C中不可以这样的,只能 int a[n];并且n要是个具体的数,要不会出错的。还有就是算最小值得到的不是最小的,而是得到最后两个数中的最小那个,我用的是5个数:
#include <iostream.h>
#include <math.h>
void main()
{
    int n,i,max,min,sum=0;
    int a[5];
    float ave;
    cout<<"学生总人数";
    cin>>n;
    for (i=0;i<n;i++)
    {
     cout<<"输入学生分数";
     cin>>a[i];
     sum+=a[i];
    }
    min=max=a[0];
    for (i=1;i<n;i++)
    {
        if (a[i]>max)
             max=a[i];
    }
    for(i=1;i<n;i++)
    {
        if(a[i]<min)
           min=a[i];
    }
    ave=float(sum/n);
    cout<<"学生的总成绩:"<<sum<<endl;
    cout<<"学生的平均成绩:"<<ave<<endl;
    cout<<"学生最低分:"<<min<<endl;
    cout<<"学生最高分:"<<max<<endl;
}

天下虽大,却任我行!!
2009-07-19 11:34
zr1234561555
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-7-17
收藏
得分:0 
感谢3楼大哥啊,最近自学c++,不懂还要多请教啊
2009-07-20 13:23
lyd253261362
Rank: 1
等 级:新手上路
帖 子:91
专家分:2
注 册:2007-4-26
收藏
得分:0 
回帖是一种美德!
2009-07-20 14:03
zhangjun039009
Rank: 2
等 级:论坛游民
帖 子:60
专家分:10
注 册:2008-10-16
收藏
得分:0 
其实在做的时候如果人数不是太大的话,可以考虑一下用一个最大人数来初始化数组,例如下面的max_student ,如果不想用这种方法的话,就去看看vector的使用方法
还有就是求最大分数和最小分数时可以放在同一个循环内完成,这样在数据量大的情况下速度会快点~
#include <iostream.h>
#include <math.h>
#define max_student 100
void main()
{
    int n,i,max,min,sum=0;
    int a[max_student];
    float ave;
    cout<<"学生总人数";
    cin>>n;
    for (i=0;i<n;i++)
    {
     cout<<"输入学生分数";
     cin>>a[i];
     sum+=a[i];
    }
    min=max=a[0];
    for (i=1;i<n;i++)
    {
        if (a[i]<min)min=a[i];
        else if(a[i]>max)max=a[i];
    }
    ave=float(sum/n);
    cout<<"学生的总成绩:"<<sum<<endl;
    cout<<"学生的平均成绩:"<<ave<<endl;
    cout<<"学生最低分:"<<min<<endl;
    cout<<"学生最高分:"<<max<<endl;
}

[[it] 本帖最后由 zhangjun039009 于 2009-7-21 17:03 编辑 [/it]]
2009-07-21 17:02
justcy
Rank: 2
等 级:论坛游民
帖 子:25
专家分:84
注 册:2009-7-25
收藏
得分:0 
回复 楼主 zr1234561555
最小值不对,可以参照最大值的判定,不要取巧.
2009-07-27 19:17
快速回复:求助看一下这道题我哪里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018527 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved