请大家帮忙看看代码哪里有问题?
我在devc++编译过了但运行时直接结束了,但在pta上能运行.
devc运行图
题目
样例
代码如下
#include<stdio.h>
#include<stdlib.h>
typedef struct student{
int xuehao;
int de;
int cai;
int sum;
}STU;
void sort(STU file[],int len);
int main(){
STU file[100000],sf1[20000],sf2[20000],sf3[20000],sf4[20000];
int L,H,N,i,f1=0,f2=0,f3=0,f4=0;
scanf("%d %d %d",&N,&L,&H);
for(i=0;i<N;i++){
scanf("%d %d %d",&file[i].xuehao,&file[i].de,&file[i].cai);
file[i].sum=file[i].de+file[i].cai;
}
for(i=0;i<N;i++){
if(file[i].de>=L&&file[i].de>=L){//德才过了L;
if(file[i].de>=H&&file[i].cai>=H){//找第一类学生
sf1[f1++]=file[i];
}else if(file[i].cai<H&&file[i].de>=H){//2
sf2[f2++]=file[i];
}else if(file[i].de>=file[i].cai){//3
sf3[f3++]=file[i];
}else {
sf4[f4++]=file[i];
}
}
}
sort(sf1,f1);
sort(sf2,f2);
sort(sf3,f3);
sort(sf4,f4);
printf("%d\n",f1+f2+f3+f4);
for(i=0;i<f1;i++){
printf("%d %d %d\n",sf1[i].xuehao,sf1[i].de,sf1[i].cai);
}
for(i=0;i<f2;i++){
printf("%d %d %d\n",sf1[i].xuehao,sf1[i].de,sf1[i].cai);
}
for(i=0;i<f3;i++){
printf("%d %d %d\n",sf1[i].xuehao,sf1[i].de,sf1[i].cai);
}
for(i=0;i<f4;i++){
printf("%d %d %d\n",sf1[i].xuehao,sf1[i].de,sf1[i].cai);
}
return 0;
}
void sort(STU file[],int len){
int i,j;
STU c;
for(i=len-1;i>0;i--){
for(j=0;j<i;j++){
if(file[j].sum<file[j+1].sum){
c=file[j];
file[j]=file[j+1];
file[j+1]=c;
}
}
}
}
超内存了吧……