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

This commit is contained in:
Pavlo Tverdyi 2020-04-16 19:09:03 +00:00
parent eb9a6316e1
commit 7f4966f6fe

View File

@ -4,7 +4,6 @@
#include <ctype.h> #include <ctype.h>
struct LIS{ struct LIS{
char name[100];
char fname[100]; char fname[100];
int num; int num;
}; };
@ -34,53 +33,25 @@ else{
char keep(struct LIS* list,int places){ char keep(struct LIS* list,int places){
int count=0; int count=0;
char names[100]; char names[100];
for(;fgets(names,100,stdin);){ for(;fgets(list[count].fname,100,stdin);count++){
if(names[0]=='\n'){ if(list[count].fname[0]=='\n'){
list[count].num=-1; list[count].num=-1;
continue; // printf("skip");
} }
if(sscanf(names,"%s %s",list[count].fname,list[count].name)==2){ if(list[count].fname[0]!='\n'){
count++; list[count].num=0;
if(places>=count){
list[count-1].num=0;
}
else{
list[count-1].num=1;
}
}
else if(sscanf(names,"%s",list[count].fname)==1){
count++;
if(places>=count){
list[count-1].num=2;
}
else{
list[count-1].num=3;
}
} }
} }
return count; return count;
} }
void sort(struct LIS* list,int count){ void sort(struct LIS* list,int count){
struct LIS ilusion;
char *min; struct LIS ilusion;
int mini; char *min;
if(list[0].num==0 || list[0].num==1) char *mickro;
int mini;
for(int i=0;i<=count-1;i++){ for(int i=0;i<=count-1;i++){
min=list[i].name;
mini=i;
for(int j=i+1;j<=count;j++){
if(strcmp(min,list[j].name)>0){
min=list[j].name;
mini=j;
}
}
ilusion=list[i];
list[i]=list[mini];
list[mini]=ilusion;
}
////
for(int i=0;i<=count-1;i++){
min=list[i].fname; min=list[i].fname;
mini=i; mini=i;
for(int j=i+1;j<=count;j++){ for(int j=i+1;j<=count;j++){
@ -89,41 +60,36 @@ void sort(struct LIS* list,int count){
mini=j; mini=j;
} }
} }
ilusion=list[i]; ilusion=list[i];
list[i]=list[mini]; list[i]=list[mini];
list[mini]=ilusion; list[mini]=ilusion;
} }
} }
void print(struct LIS *list,int count,int places){ void print(struct LIS *list,int count,int places){
if(count>0){ if(count>0){
if(places>0){ if(places>0){
printf("Prijati studenti:\n"); int k=0;
int i=1; puts("Prijati studenti:");
for(i;i<=count;i++){ for(int i=0;k!=places+1;i++){
if(list[i].num==2 && list[i].fname[0]!='\n'){ if(list[i].num==0){
printf("%s\n",list[i].fname); puts(list[i].fname);
} k++;
if(list[i].num==0 && list[i].fname[0]!='\n'){
printf("%s %s\n",list[i].fname,list[i].name);
} }
} }
} }
if(count-places>0){ if(count-places>0){
printf("Neprijati studenti:\n"); int k=0;
for(int i=0;i<=count;i++){ puts("Neprijati studenti:");
if(list[i].num==3){ for(int i=places+1;i<count;i++){
printf("%s\n",list[i].fname); if(list[i].num==0){
} puts(list[i].fname);
if(list[i].num==1){ k++;
printf("%s %s\n",list[i].fname,list[i].name);
} }
} }
} }
} }
else{
puts("Ziadne prihlasky");
}
} }