| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 260 人关注过本帖
标题:高手们 求解为何出现这样的问题????
只看楼主 加入收藏
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
结帖率:94.12%
收藏
已结贴  问题点数:5 回复次数:3 
高手们 求解为何出现这样的问题????
//一个班级有n个学生,n由用户输入,每个学生有
// 学号1-n,有三门成绩(语、数、外)成绩由随机数生成(0到
// 100之间),每个学生的成绩由动态数组保存。
// 要求:
// (1). 取得总分最高的学生的学号。
// (2). 提示用户输入1,2,3来获得语、数、外的平均分。
#include <iostream>
#include <ctime>
using namespace std;
typedef struct student
{
    int id;
    int chinese_score;
    int math_score;
    int english_score;
    int total;
}stu;
void main()
{
    time_t T;
    stu *array;
    int number;
    int chn_total=0,mat_total=0,eng_total=0;
    float chn_aver;
    float mat_aver;
    float eng_aver;
    int i(1);
    srand((unsigned) time(&T));
    cout<<"请输入学生的数量(n)"<<endl;
    cin>>number;
    array = new stu[number];
   

    for (i=1;i<=number;i++)
    {
        array[i].id = i;
        array[i].chinese_score = rand()%100;
        array[i].math_score = rand()%100;
        array[i].english_score = rand()%100;
        array[i].total = array[i].chinese_score+array[i].math_score+array[i].english_score;
        chn_total+=array[i].chinese_score;
        mat_total+=array[i].math_score;
        eng_total+=array[i].english_score;
      
    }
   
     
    cout<<"学号"<<"\t"<<"语文成绩"<<"\t"<<"数学成绩"<<"\t"<<"英语成绩"<<"\t"<<"总分"<<endl;        
    for (i=1;i<=number;i++)
    {
        cout<<array[i].id<<"\t"<<array[i].chinese_score<<"\t\t"<<array[i].math_score
            <<"\t\t"<<array[i].english_score<<"\t\t"<<array[i].total<<endl;        
    }
   
   
    int max = array[1].total;
    int I=1;
    for (i=1;i<=number;i++)
    {
        if (max<array[i].total)
        {
            max = array[i].total;
            I = i;        
        }
    }
    cout<<"最高分的的同学的学号是:"<<I<<endl;
     
    int j(0);
    cout<<"显示该班各科成绩的平均分(1:语文平均分,2:数学平均分,3:外语平均分)"<<endl;
    cin>>j;
    if (1==j)
    {
        chn_aver =(float)chn_total/number;
        cout<<"语文平均分"<<chn_aver<<endl;
    }
    else if (2==j)
    {
        mat_aver = (float)mat_total/number;
        cout<<"数学平均分"<<mat_aver<<endl;
    }
    else if (3==j)
    {
        eng_aver = (float)eng_total/number;
        cout<<"外语平均分"<<eng_aver<<endl;
    }
    else
    {
        cout<<"error"<<endl;
    }
   
    //delete []array;
    //array = NULL;
}

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册




[ 本帖最后由 未名湖的云 于 2012-11-22 22:14 编辑 ]
搜索更多相关主题的帖子: include number 动态 三门 用户 
2012-11-22 22:12
一个孩子
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:356
专家分:954
注 册:2012-10-1
收藏
得分:1 
溢出了

重要的不是结果,是求一个结果的过程,哪怕千难万难,当你有想要的结果时,你已走的很远
2012-11-22 22:40
wtw199186
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2012-9-22
收藏
得分:4 
cout<<"请输入学生的数量(n)"<<endl;
    cin>>number;
    array = new stu[number];     //一共不是number个吗
   

    for (i=1;i<=number;i++)       //最多是array[number-1]
    {
        array[i].id = i;
        array[i].chinese_score = rand()%100;
        array[i].math_score = rand()%100;
        array[i].english_score = rand()%100;
        array[i].total = array[i].chinese_score+array[i].math_score+array[i].english_score;
        chn_total+=array[i].chinese_score;
        mat_total+=array[i].math_score;
        eng_total+=array[i].english_score;
      
    }
2012-11-22 22:49
未名湖的云
Rank: 3Rank: 3
来 自:安徽
等 级:论坛游侠
帖 子:130
专家分:190
注 册:2012-10-11
收藏
得分:0 
回复 3楼 wtw199186
下标从1开始的~~
2012-11-23 20:08
快速回复:高手们 求解为何出现这样的问题????
数据加载中...
 
   



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

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