请问怎么错了?大神求救

P1093 [NOIP2007 普及组] 奖学金

静之城 @ 2019-07-24 14:16:32

include<stdio.h>

int main()

{

int a[100]={0},l,i,j,n,k,temp;
int b[100]={0},c[100]={0},d[100]={0},min[100]={0};
int ji=0;
scanf("%d",&n);
for(l=1;l<=n;l++)
{
    scanf("%d",&a[l]);
    scanf("%d",&b[l]);
    scanf("%d",&c[l]);
    d[l]=a[l]+c[l]+b[l];
    min[l]=l;
}
for(i=n-1;i>=0;i--)
{
    j=0;
    for(j=0;j<i;j++)
    {
        if(d[j]<d[j+1])
        {
            temp=d[j];
            d[j]=d[j+1];
            d[j+1]=temp;
            temp=min[j];
            min[j]=min[j+1];
            min[j+1]=temp;  
        }
    }
}
for(l=1;l<=5||i<=n;l++)
{

    printf("l=%d\n",l);
    printf("%d",min[l]);
    printf(" ");
    printf("%d",d[l]);
    printf("\n");
}
return 0;

}


by Gary818 @ 2019-07-24 14:30:20

@静之城
希望更丰富的展现?使用Markdown


by 学而思李老师 @ 2019-07-24 14:32:30

你应该没有考虑语文分高者优先,我的结构体快排你可以学一下,可以省(偷)很多时间(懒)


by 学而思李老师 @ 2019-07-24 14:32:56

#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX = 300;
struct P1093{
    int num;
    int chinese, math, english;
    int ttl;
};
P1093 arr[MAX + 5];
bool cmp(P1093 a, P1093 b)
{
    if(a.ttl > b.ttl) return true;
    else if(a.ttl < b.ttl) return false;
    else{
        if(a.chinese > b.chinese) return true;
        else if(a.chinese < b.chinese) return false;
        else{
            if(a.num > b.num) return false;
            else return true;
        }
    }
}
int main(){
//  freopen("text.out", "w", stdout);
    int n;
    scanf("%d", &n); 
    for(int i = 1; i <= n; i ++){
        scanf("%d %d %d", &arr[i].chinese, &arr[i].math, &arr[i].english);
        arr[i].num = i;
        arr[i].ttl = arr[i].chinese + arr[i].math + arr[i].english;
    }
    sort(arr + 1, arr + n + 1, cmp);
    for(int i = 1; i <= 5; i ++){
        printf("%d %d\n", arr[i].num, arr[i].ttl);
    }
    return 0;
}

by 学而思李老师 @ 2019-07-24 14:33:39

@静之城


by 静之城 @ 2019-07-25 17:38:44

谢谢,大神/大佬。 @社会我猪酐


|