C语言的高考分数编程训练

高考计分模式今年的试点在上海、浙江开始。总体方案是 3 + 3 模式。

除了语数外三门课程的成绩外,在学业水平测试中选择 3 门成绩最好的科目计入总分。现给出一些学生各科成绩,要求求出他们的高考总成绩。

输入描述
有多组测试数据,测试数据的组数 n 在第一行给出。

接下来的 n 行中有若干个正整数 (不超过 20),前三个分别表示语数外的成绩,其余的表示学业水平测试中其他科目的成绩。每行以 -1 结尾

输出描述
对于每组测试数据,输出一行正整数,表示该考生的高考总成绩。

样例输入:
3

110 168 110 89 78 91 79 92 79 -1

100 159 108 71 79 96 91 90 67 78 -1

108 168 111 78 90 89 100 87 69 92 98 -1

样例输出:
660

644

677

前三个数求和,后面的数从大到小排序,取前三个与前面的求和

#include <stdio.h>
int main()
{
    int n,d,i,j,k,t,sum=0,a[100],num=0,count=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        count = 0;
        sum = 0;
        scanf("%d",&d);
        while(d!=-1)
        {
            if(count < 3)
                sum+= d;
            else
                a[num++] = d;
            count++;
            //
            for(j=0;j<num-1;j++)
                for(k=0;k<num-i-1;k++)
                {
                    if(a[k] < a[k+1])
                    {
                          t = a[k];
                          a[k] = a[k+1];
                          a[k+1] = t;
                    }
                }
            sum += a[0] + a[1] + a[2];
            printf("%d\n",sum);
            //
            scanf("%d",&d);
        }
    }
    return 0;
}