用c语言或c++做。我还有很多oj题要做,而且要赶时间,这题比较难。急需,帮帮忙。我会给高的悬赏

题目描述
每次期末考试成绩出来之前的一段时间大豪哥心里都是痛苦的,总感觉自己会在班上排名特别差。所以当成绩出来以后大豪哥想快点知道班上的总排名,以便知道自己的排名。(PS:大豪哥班上有个学霸名叫日天,又名泰迪,不要问我为什么,因为泰迪的行为决定的)

 

输入
多组测试数据,至文件结尾。
先输入每个班上有n个同学,这个学期有m门课程(1<=n,m<=100)
接下来有n行,每行的输入格式为学号id,姓名name,课程成绩k1,课程成绩k2... ,课程成绩km.(学号在int型范围以内,0<=ki<=100,姓名长度在20个字符以下)

 

输出
输出班上每个同学排名,并输出总分及排名(如果总分相同就按学号从小到大输出,但是排名还是相同的)输出格式见样例

 

样例输入
4 4
1 Taidi 100 100 90 90
2 Dahaoge 60 60 70 60
3 Yeshen 90 90 100 100
4 Wangpangzi 50 60 100 80
样例输出
1 Taidi 100 100 90 90 Sum = 380 Ranking = 1
3 Yeshen 90 90 100 100 Sum = 380 Ranking = 1
4 Wangpangzi 50 60 100 80 Sum = 290 Ranking = 3
2 Dahaoge 60 60 70 60 Sum = 250 Ranking

第1个回答  2019-01-11
你在加点我帮你写追问

你写了吧,我要用啊

先写一下吧,我还有别的要做

追答

还没有,你加的话我现在写,10分钟你就有了

第2个回答  2019-01-11
找计算机二级的培训班吧
第3个回答  2019-01-11

#include<stdio.h>
#include<string.h>

struct Student{
    char name[20];
    int id;
    int score[101];
};

int main(){
    Student s[100];
    int n,m,i,j;
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++){
        scanf("%d%s",&s[i].id,s[i].name);
        for(j=0;j<m;j++){
            scanf("%d",&s[i].score[j]);
            s[i].score[100]+=s[i].score[j];
        }
    }
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if(s[i].score[100]<s[j].score[100]){
                Student tmp=s[i];
                s[i]=s[j];
                s[j]=tmp;
            }
            if(s[i].score[100]==s[j].score[100]){
                if(s[i].id>s[j].id){
                    Student tmp=s[i];
                    s[i]=s[j];
                    s[j]=tmp;
                }
            }
        }
    }
    int tmp=1;//用于确定排名
    for(i=0;i<n;i++){
        printf("%d %s ",s[i].id,s[i].name);
        for(j=0;j<m;j++){
            printf("%d ",s[i].score[j]);
        }
        printf("Sum=%d ",s[i].score[100]);
        if(i==0) printf("Ranking=1\n");
        else{
            if(s[i].score[100]==s[i-1].score[100]){
                //前后两人排名相同就直接输出第一人排名
                printf("Ranking=%d\n",tmp);
            }
            else{
                tmp=i+1;//前后两人成绩不同就更新后一人排名
                printf("Ranking=%d\n",i+1);
            }
        }
    }
}

本回答被网友采纳
第4个回答  2019-01-11
什么时候要

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网