diff --git a/du5/program.c b/du5/program.c new file mode 100644 index 0000000..74c43df --- /dev/null +++ b/du5/program.c @@ -0,0 +1,59 @@ +#include +#include + +struct person{ + int score; + char name[30]; +} + +void addElement(struct person PersonList*,int score,char *name){ + static int size = 1; + PersonList = realloc(PersonList,size*sizeof(struct person); + PersonList[size-1]->score = score; + PersonList[size-1]->name = name; + size++; +} + + +int comp(const void *p1, const void *p2){ + struct person* person1 = (struct person*)p1; + struct person* person2 = (struct person*)p2; + + return strcmp(person1->name, person2->name); +} + + + +int main(){ + struct person PersonList*=(struct person *)calloc(0,sizeof(struct person)); + int count = 0; + char name[30]; + int score=0; + int c =0; + while(scanf("%d %s",&score,name)!=EOF){ + addElement(&PersonList,score,name); + c++; + } + + qsort(PersonList,c,sizeof(struct person),comp); + int idex = 0; + for(int i =0;i