&78 2021-11-11 19:28 采纳率: 80%
浏览 22

c语言的问题,求帮。

在这里我们需要对N个男人进行排序,规则如下:
每个男人有3个属性,ACM成绩,金钱,人品。
优先按照ACM成绩由大到小排名,成绩相同的则按照金钱由大到小排序,金钱相同的则按照人品有大到小排序。
Input
对于每组测试数据:
第一行,输入一个整数N表示有N个男人。(1 <= N <= 1000)
接下来N行,每行3个数字,表示该男人的ACM成绩,金钱,人品。(0 <= ACM成绩、金钱、人品 <= 10^9)

处理到文件结束
Output
对于每组测试数据:
输出N行,每行输出该男人的ACM成绩,金钱、人品。
Sample Input
3
100 50 1000000000
1000000000 50 100
10 50 100

Sample Output
1000000000 50 100
100 50 1000000000
10 50 100

  • 写回答

1条回答 默认 最新

  • 星星不再亮 2021-11-12 14:17
    关注

    这样行吗
    #include <stdio.h>
    int main()
    {
    int a,b,c[1000][3],d[3],n;
    scanf("%d",&n);
    for(a=0;a<n;a++)
    {
    for(b=0;b<3;b++)
    {
    scanf("%d",&c[a][b]);
    }
    }
    for(a=1;a<n;a++)
    {
    if(c[a][0]>c[a-1][0])
    {
    for(b=0;b<3;b++)
    {
    d[b]=c[a][b];
    c[a][b]=c[a-1][b];
    c[a-1][b]=d[b];
    }
    }
    }
    for(a=0;a<n;a++)
    {
    for(b=0;b<3;b++)
    {
    printf("%d ",c[a][b]);
    }
    printf("\n");
    }
    return 0;
    }

    评论

报告相同问题?

问题事件

  • 创建了问题 11月11日