来自M78的光之文轩 2022-11-02 20:33 采纳率: 92%
浏览 42
已结题

NOI第1.10的第4题代码再不出错误

NOI第1.10的第4题代码再不出错误
原题在http://noi.openjudge.cn/ch0110/04/

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int n;
    cin>>n;
    int a[n][6];
    int i,l;
    for(i=0;i<n;i++){
        for(l=0;l<3;l++) cin>>a[i][l];  //a[][0]语文,a[][1]数学,a[][2]英语 
    }
    for(i=0;i<n;i++){
        a[i][3]=a[i][0]+a[i][1]+a[i][2];   //a[][3]是总分 
        a[i][4]=i+1;                      //a[][4]是学号 
    }
    for(i=0;i<n;i++){
        for(l=0;l<n-i-1;l++){
            if(a[l][3]>a[l+1][3]) {swap(a[l][3],a[l+1][3]);swap(a[l][4],a[l+1][4]);}
            else if(a[l][3]==a[l+1][3]&&a[l][0]>=a[l+1][0]) {swap(a[l][4],a[l+1][4]);}
            else continue;
        }
    }
    for(i=n-1;i>=n-5;i--) cout<<a[i][4]<<" "<<a[i][3]<<endl;
}

  • 写回答

3条回答 默认 最新

  • 关注

    交换的时候,需要把语文成绩、总成绩、学号一起交换。代码修改如下:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main() {
        int n;
        cin >> n;
        int a[n][6];
        int i, l;
        for (i = 0; i < n; i++) {
            for (l = 0; l < 3; l++) cin >> a[i][l];  //a[][0]语文,a[][1]数学,a[][2]英语 
        }
        for (i = 0; i < n; i++) {
            a[i][3] = a[i][0] + a[i][1] + a[i][2];   //a[][3]是总分 
            a[i][4] = i + 1;                      //a[][4]是学号 
        }
        for (i = 0; i < n; i++) {
            for (l = 0; l < n - i - 1; l++) {
                if (a[l][3] > a[l + 1][3]) { swap(a[l][0], a[l + 1][0]); swap(a[l][3], a[l + 1][3]); swap(a[l][4], a[l + 1][4]); }
                else if (a[l][3] == a[l + 1][3] && a[l][0] >= a[l + 1][0]) { swap(a[l][0], a[l + 1][0]); swap(a[l][3], a[l + 1][3]); swap(a[l][4], a[l + 1][4]); }
                else continue;
            }
        }
        for (i = n - 1; i >= n - 5; i--) cout << a[i][4] << " " << a[i][3] << endl;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月10日
  • 已采纳回答 11月2日
  • 创建了问题 11月2日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?