Изменить 'du5/program.c'

This commit is contained in:
Pavlo Tverdyi 2020-04-09 17:50:32 +00:00
parent 7057440f68
commit 46d0348629

View File

@ -15,7 +15,7 @@ int keep(struct LIS *);
int del(struct LIS *,int); int del(struct LIS *,int);
void Sort_Num(struct LIS *,int); void Sort_Num(struct LIS *,int);
void Sort_Sname(struct LIS *,int); void Sort_Sname(struct LIS *,int);
void Sort_Fname(struct LIS *,int); //void Sort_Fname(struct LIS *,int);
void print(struct LIS *,int); void print(struct LIS *,int);
@ -25,7 +25,7 @@ int count=keep(list);
int pult=del(list,count); int pult=del(list,count);
Sort_Num(list,count); Sort_Num(list,count);
Sort_Sname(list,count); Sort_Sname(list,count);
Sort_Fname(list,count); //Sort_Fname(list,count);
print(list,pult); print(list,pult);
return 0; return 0;
} }
@ -64,31 +64,27 @@ void Sort_Num(struct LIS *list,int count){//bubble sort :)
} }
} }
} }
void Sort_Sname(struct LIS *list,int count){
void Sort_Sname(struct LIS *list,int count){//Selection Sort
struct LIS ilusion; struct LIS ilusion;
for(int i=count-1;i<0;i--){ char *min;
for(int j=0;j<i;j++){ int mini;
if(list[j].num==list[j+1].num && strcmp(list[j].sname,list[j+1].sname)<0 ){ for(int i=0;i<count;i++){
ilusion=list[j]; min=list[i].sname;
list[j]=list[j+1]; mini=i;
list[j+1]=ilusion; for(int j=i+1;j<count;j++){
} if((list[mini].num==list[j].num) && strcmp(min,list[j].sname)>0){
} min=list[j].sname;
} mini=j;
}
void Sort_Fname(struct LIS *list,int count){
struct LIS ilusion;
for(int i=count-1;i<0;i--){
for(int j=0;j<i;j++){
if(list[j].num==list[j+1].num && list[j].sname==list[j+1].sname && strcmp(list[j].fname,list[j+1].fname)>0) {
ilusion=list[j];
list[j]=list[j+1];
list[j+1]=ilusion;
} }
} }
ilusion=list[i];
list[i]=list[mini];
list[mini]=ilusion;
} }
} }
void print(struct LIS *list,int pult){ void print(struct LIS *list,int pult){
printf("Vysledky:\n"); printf("Vysledky:\n");
for(int i=0;i<pult;i++){ for(int i=0;i<pult;i++){
@ -103,3 +99,4 @@ void print(struct LIS *list,int pult){