parent
99f1ce74c5
commit
1d3eb8ba4b
@ -0,0 +1,70 @@
|
||||
#include <stdio.h>
|
||||
typedef struct{
|
||||
int Id;
|
||||
int mclass;
|
||||
float a,b,c;
|
||||
float total;
|
||||
}Student;
|
||||
void sort(Student *person,int len)
|
||||
{
|
||||
for(int i=0;i<len-1;i++)
|
||||
{
|
||||
int k=i;
|
||||
for(int j=i;j<len-1;j++)
|
||||
{
|
||||
if(person[k].mclass>person[j].mclass||(person[k].mclass==person[j].mclass&&person[k].total<person[j].total))
|
||||
{
|
||||
k=j;
|
||||
}
|
||||
if(k!=i)
|
||||
{
|
||||
Student temp=person[i];
|
||||
person[i]=person[k];
|
||||
person[k]=temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int newId,newClass;
|
||||
float grade1,grade2,grade3;
|
||||
void print(Student *person)
|
||||
{
|
||||
for(int i=0;i<4;i++)
|
||||
{
|
||||
printf("%d %d %.lf %.lf %.lf",person[i].Id,person[i].mclass,person[i].a,person[i].b,person[i].c);
|
||||
if(person[i].Id==newId)
|
||||
{
|
||||
printf(" inserted");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
int main()
|
||||
{
|
||||
Student students[4]=
|
||||
{
|
||||
{10001,11,99.5,88.5,89.5,99.5+88.5+89.5},
|
||||
{10002,12,77.9,56.5,87.5,77.9+56.5+87.5},
|
||||
{10003,11,92.5,99.0,60.5,92.5+99.0+60.5},
|
||||
{10000,0,0.0,0.0,0.0,0.0}
|
||||
};
|
||||
scanf("%d %d %f %f %f",&newId,&newClass,&grade1,&grade2,&grade3);
|
||||
for(int i=0;i<3;i++)
|
||||
{
|
||||
if(students[i].Id==newId)
|
||||
{
|
||||
printf("The student id %d already exists.\n",newId);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
students[3].Id=newId;
|
||||
students[3].mclass=newClass;
|
||||
students[3].a=grade1;
|
||||
students[3].b=grade2;
|
||||
students[3].c=grade3;
|
||||
students[3].total=grade1+grade2+grade3;
|
||||
sort(students,4);
|
||||
print(students);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in new issue