睡觉觉觉得 2023-08-07 14:56 采纳率: 85.2%
浏览 24
已结题

乒乓球比赛(C++)

描述

学校的乒乓球赛就要举行了。

某个班的同学们都喜欢打乒乓球,都强烈希望代表班级去比赛。

但是由于名额限制,他们之中只能由一个人被选作代表。

为了让选择的过程公平,他们决定打一次单循环赛,每一对学生之间都打一场五局三胜的比赛。

赢得最多比赛的人就将代表班级去比赛。

现在班主任手里有一份表,表里面记录了每一场比赛的比分。

她应该让谁去比赛?

输入
输入包含一组测试数据。

第一行包含n(2 <= n <= 100),表示班级学生的数目。

接下来给出一个 n × n 矩阵。

矩阵的每一个元素都是0,1、2,3中的一个。

第 i 行第 j 列的元素 aij 是第 i 个学生在和第 j 个学生的比赛中赢的局数。

aij 和 aji(i ≠ j)正好有一个是3,另外一个小于3。

矩阵的所有对角线元素都是0。

输出
输出赢了最多比赛的学生的编号。如果有平分,选择编号最小的。

输入样例 1

4
0 0 3 2
3 0 3 1
2 2 0 2
3 3 3 0
输出样例 1

4
语言:
C++
这是我的代码:

#include<iostream>
using namespace std;

int n ; 
int s[6][6] ;

void shuru() {
    for( int i = 1 ; i <= n ; i ++) {
        for( int k = 1 ; k <= n ; k ++) {
            cin>>s[i][k] ;
        }
    }
}

int get_count(int x) {
    int m = 0 ;
    for( int i = 1 ; i <= n ; i ++) {
        if( 3 == s[x][i] ) {
            m++ ;
        }
    }
    return m ;
}

void solve(){
    shuru() ;
    
    int mi = 0 ;
    int mx = 0 ;
    
    for( int i = 1 ; i <= n ; i ++ ) {
        int m = get_count(i) ;
        if( m > mx ) {
            mi = i ;
            mx = m ;
        }
    }
    cout << mi << endl ;
}

int main(){
    //freopen("083.txt", "r", stdin) ;
    while(cin>>n) {
        solve() ;
    }
    return 0 ;
}

但是错了,求大家修改

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-07 17:04
    关注

    【以下回答由 GPT 生成】

    最初的代码有点混乱和不完整。这里是修改过的代码:

    #include<iostream>
    using namespace std;
    
    const int MAXN = 105;
    int s[MAXN][MAXN];
    
    void shuru(int n) {
        for(int i = 1; i <= n ; i++) {
            for(int j = 1; j <= n ; j++) {
                cin >> s[i][j] ;
            }
        }
    }
    
    int get_count(int x, int n) {
        int m = 0 ;
        for(int i = 1; i <= n ; i++) {
            if(i != x && s[x][i] == 3) {
                m++ ;
            }
        }
        return m;
    }
    
    void solve(int n){
        shuru(n);
    
        int mi = 1 ;
        int mx = get_count(mi, n);
    
        for(int i = 2 ; i <= n ; i++) {
            int m = get_count(i, n) ;
            if(m > mx) {
                mx = m ;
                mi = i ;
            }
        }
        cout << mi << endl ;
    }
    
    int main(){
        int n;
        while(cin >> n) {
            solve(n);
        }
        return 0 ;
    }
    

    这样修改后应该输出正确的结果。



    【相关推荐】


    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7793672
    • 除此之外, 这篇博客: 指针和数组试题解析(重置版)中的 小编,在这里想说一下,c语言的最后一节 C预处理,可能还需要一些时间,因为小编,昨天才下载了虚拟机 和 linux 系统,还没开始安装。所以无法着手写,因为 C预处理,vs2013很难表达,也就意味可能会讲不清楚。所以这篇文章可能需要点时间,再加上小编初期的文章,是没有排版的(而且可能有些错误,请大家以重置版为准),所以这几天我就把这些重新写。有兴趣的朋友可以看看。(ps:如果哪一天没有更新,意味着小编正在努力学习,为了能给大家呈现一片详细好懂的文章。) 部分也许能够解决你的问题。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月7日
  • 已采纳回答 8月7日
  • 请采纳用户回复 8月7日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别
  • ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因
  • ¥15 NRF24L01能发送但是不能接收