一一


私信TA

用户名:dotcpp0663990

访问量:373

签 名:

等  级
排  名 1026
经  验 3314
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<stdio.h>

struct garde {

int sum;

int xuehao;

};

int main(){

int arr[1000] = { 0 };

int brr[1000] = { 0 };

int crr[1000] = { 0 };

int n;

int temp1;

struct garde su[1000];

scanf("%d", &n);

for (int i = 1; i <= n; i++) {

scanf("%d", &arr[i]);

scanf("%d", &brr[i]);

scanf("%d", &crr[i]);

}

for (int i = 1; i <= n; i++) {

     su[i].sum = arr[i] + brr[i] + crr[i];

     su[i].xuehao = i;

     }

for (int i = 1; i <= n; i++) {

     for (int k = 1; k <= n - 1; k++) {

          if (su[k].sum < su[k + 1].sum) {

                 temp1 = su[k].sum;

                 su[k].sum = su[k + 1].sum;

                 su[k + 1].sum = temp1;

                 temp1 = su[k].xuehao;

                 su[k].xuehao = su[k + 1].xuehao;

                 su[k + 1].xuehao = temp1;

                 temp1 = arr[k];

                 arr[k] = arr[k + 1];

                 arr[k+1] = temp1;

        }

    }

}

for (int k = 1; k <= n - 1; k++) {

    if (su[k].sum == su[k + 1].sum&&arr[k]<arr[k+1]) {                   //对总分相同的两个学生根据语文成绩排序

         temp1 = su[k].sum;

         su[k].sum = su[k + 1].sum;

         su[k + 1].sum = temp1;

         temp1 = su[k].xuehao;

         su[k].xuehao = su[k + 1].xuehao;

         su[k + 1].xuehao = temp1;

         temp1 = arr[k];

         arr[k] = arr[k + 1];

         arr[k + 1] = temp1;

     }

}

if (n >= 5) {                                             //判断学生总数是否大于5(所给的样例可能都是大于五的,这步可能不需要)

     for (int i = 1; i <= 5; i++) {

         printf("%d ", su[i].xuehao);           //根据格式进行输出

         printf("%d\n", su[i].sum);

     }

}

else if (n < 5) {

    for (int i = 1; i <= n; i++) {

         printf("%d ", su[i].xuehao);

         printf("%d\n", su[i].sum);

    }

}

return 0;

}

 

0.0分

0 人评分

  评论区

  • «
  • »