#include #include struct Student { int num; int sclass; char name[5]; float mark1; float mark2; float mark3; }; struct Student stu[7]={{10001,11,"Zhang",99.5,88.5,89.5},{10002,12,"Yang",77.9,56.5,87.5},{10003,11,"Liang",92.5,99.0,60.5},{10004,11,"Cai",89.6,56.9,90.5},{10005,14,"Fu",55.6,67.9,98.9},{10006,12,"Mao",22.1,45.9,99.2},{10007,13,"Zhan",35.6,67.9,88.0}}; int main() { void Sclass(struct Student stu[]); void Snum(struct Student stu[]); void Sname(struct Student stu[]); void Smark(struct Student stu[]); void Intergrate(struct Student stu[]); struct Student *p=stu; char input; scanf("%c",&input); if(input=='1') { Sclass(p); } else if(input=='2') { Snum(p); } else if(input=='3') { Sname(p); } else if(input=='4') { Smark(p); } else if(input=='5') { Intergrate(p); } return 0; } void Sclass(struct Student stu[]) { char input[10]; struct Student slc[7]; struct Student temp; gets(input); int i,j,k; if(input[3]=='-') { k=0; for(j=0;j<7;j++) { if((stu[j].sclass>=input[2]-38)&&(stu[j].sclass<=input[5]-38)) { slc[k]=stu[j]; k++; } } } else { k=0; for(j=0;j<7;j++) { if(stu[j].sclass==input[2]-38) { slc[k]=stu[j]; k++; } } } for(i=k-1;i>=0;i--) { for(j=0;jslc[j+1].sclass) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } else if(slc[j].sclass==slc[j+1].sclass) { if((slc[j].mark1+slc[j].mark2+slc[j].mark3)<(slc[j+1].mark1+slc[j+1].mark2+slc[j+1].mark3)) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } } } } for(i=0;i=10000+input[5]-48)&&(stu[j].num<=10000+input[11]-48)) { slc[k]=stu[j]; k++; } } } else { k=0; for(j=0;j<7;j++) { if(stu[j].num==10000+input[5]-48) { slc[k]=stu[j]; k++; } } } for(i=k-1;i>=0;i--) { for(j=0;jslc[j+1].sclass) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } else if(slc[j].sclass==slc[j+1].sclass) { if((slc[j].mark1+slc[j].mark2+slc[j].mark3)<(slc[j+1].mark1+slc[j+1].mark2+slc[j+1].mark3)) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } } } } for(i=0;i=0;i--) { for(j=0;jslc[j+1].sclass) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } else if(slc[j].sclass==slc[j+1].sclass) { if((slc[j].mark1+slc[j].mark2+slc[j].mark3)<(slc[j+1].mark1+slc[j+1].mark2+slc[j+1].mark3)) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } } } } for(i=0;i((input[1]-48)*10+input[2]-48+(input[4]-48)*0.1)) { slc[k]=stu[j]; k++; } } } else if(input[4]=='.') { for(j=0;j<7;j++) { if((stu[j].mark1+stu[j].mark2+stu[j].mark3)>((input[1]-48)*100+(input[2]-48)*10+input[3]-48+(input[5]-48)*0.1)) { slc[k]=stu[j]; k++; } } } for(i=k-1;i>=0;i--) { for(j=0;jslc[j+1].sclass) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } else if(slc[j].sclass==slc[j+1].sclass) { if((slc[j].mark1+slc[j].mark2+slc[j].mark3)<(slc[j+1].mark1+slc[j+1].mark2+slc[j+1].mark3)) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } } } } for(i=0;i=10000+input[i+5]-48)&&(stu[j].num<=10000+input[i+11]-48)&&(stu[j].sclass>=input[i-4]-38)&&(stu[j].sclass<=input[i-1]-38)) { slc[k]=stu[j]; k++; } else if((stu[j].num>=10000+input[i+5]-48)&&(stu[j].num<=10000+input[i+11]-48)&&(stu[j].sclass==input[i-1]-38)) { slc[k]=stu[j]; k++; } } break; } } for(i=k-1;i>=0;i--) { for(j=0;jslc[j+1].sclass) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } else if(slc[j].sclass==slc[j+1].sclass) { if((slc[j].mark1+slc[j].mark2+slc[j].mark3)<(slc[j+1].mark1+slc[j+1].mark2+slc[j+1].mark3)) { temp=slc[j]; slc[j]=slc[j+1]; slc[j+1]=temp; } } } } for(i=0;i