预定程序员 2023-07-28 21:53 采纳率: 67.4%
浏览 26
已结题

openjudge 1.5奥运奖牌的计数问题,C语言数组基础语法

问题:控制台不能实现输入,运行完直接是空格
题目:
2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。

输入
输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。
输出
输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。
样例输入
3
1 0 3
3 1 0
0 3 0
样例输出
4 4 3 11


#include<stdio.h>
int main()
{
    int i,y,n,a[n][3],x1=0,x2=0,x3=0,all=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        for(y=0;y<3;y++)
        {
            scanf("%d",&a[i][y]);
        }
    }
    for(i=0;i<n;i++)
    {
        x1+=a[i][0];
    }
    for(i=0;i<n;i++)
    {
        x1+=a[i][1];
    }
    for(i=0;i<n;i++)
    {
        x1+=a[i][2];
    }
    all=x1+x2+x3;
    printf("%d %d %d %d",x1,x2,x3,all);
    return 0;
}

代码看不出哪里错了,但是编译后控制台直接不能输入

img

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2023-07-28 23:18
    关注

    数组的大小应是常数,修改如下,改动处见注释,供参考:

    #include<stdio.h>
    #define N 18
    int main()
    {
        int i,y,n,a[N][3],x1=0,x2=0,x3=0,all=0; // 修改 a[n][3]
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            for(y=0;y<3;y++)
            {
                scanf("%d",&a[i][y]);
            }
        }
        for(i=0;i<n;i++) 
        {
            x1+=a[i][0];  // 修改
            x2+=a[i][1];
            x3+=a[i][2];
        }
        //for(i=0;i<n;i++) 修改
        //{
        //    x1+=a[i][1];
        //}
        //for(i=0;i<n;i++)
        //{
        //    x1+=a[i][2];
        //}
        all=x1+x2+x3;
        printf("%d %d %d %d",x1,x2,x3,all);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 修改了问题 7月28日
  • 创建了问题 7月28日

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码