大佬们求救,80分不知道错哪了!!!

P1093 [NOIP2007 普及组] 奖学金

Hyjbcpp @ 2024-03-24 23:44:24

代码如下,是参考了题解的思路写的,但是1和2测试点过不了。

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
long cmp(const void *a,const void *b){
    return *(long*)b-*(long *)a;
}
int main(){
    int i,j,k,b,N,a[300]={0};
    scanf("%d",&N);
    for(b=0;b<=N;++b){
        scanf("%d %d %d",&i,&j,&k);
        a[b]=((i+j+k)*1000000)+(i*1000)+(999-b);
    }
    qsort(a,300,sizeof(int),cmp);
    for(i=0;i<5;++i)
        printf("%ld %ld\n",999-(a[i]%1000)+1,a[i]/1000000);
    return 0;
}

感谢大佬们的指点。


by zhangyixuan2 @ 2024-03-25 21:37:05

建议学习结构体数组排列


by zhangyixuan2 @ 2024-03-25 21:44:15

这个代码的话你把第一个for循环的<=N改成<N就可以了


by Hyjbcpp @ 2024-03-29 19:17:50

@zhangyixuan2 好的,谢谢大佬


|