#include<stdio.h>
#include<conio.h>
#include<string.h>
#define NUM 3
struct calcio
{
char nome [20];
char cognome [30];
char squadra [20];
int gol;
} calcio[NUM];
void ordinagol ()
{
int ciclo,flag=0,passo=0,mem;
char memstr[20];
while(!flag)
{
for(ciclo=NUM-1;ciclo>passo;ciclo--)
{
if(calcio[ciclo].gol>=calcio[ciclo-1].gol)
{
strcpy(memstr,calcio[ciclo].nome);
strcpy(calcio[ciclo].nome,calcio[ciclo-1].nome);
strcpy(calcio[ciclo-1].nome,memstr);
strcpy(memstr,calcio[ciclo].cognome);
strcpy(calcio[ciclo].cognome,calcio[ciclo-1].cognome);
strcpy(calcio[ciclo-1].cognome,memstr);
strcpy(memstr,calcio[ciclo].squadra);
strcpy(calcio[ciclo].squadra,calcio[ciclo-1].squadra);
strcpy(calcio[ciclo-1].squadra,memstr);
mem=calcio[ciclo].gol;
calcio[ciclo].gol=calcio[ciclo-1].gol;
calcio[ciclo-1].gol=mem;
flag=0;
}
else
{
flag++;
}
}
passo++;
}
}
void ordinanome()
{
int ciclo,flag=0,passo=0,mem;
char memstr[20];
while(!flag)
{
for(ciclo=NUM-1;ciclo>passo;ciclo--)
{
if(strcmp(calcio[ciclo].nome,calcio[ciclo-1].nome)<0)
{
strcpy(memstr,calcio[ciclo].nome);
strcpy(calcio[ciclo].nome,calcio[ciclo-1].nome);
strcpy(calcio[ciclo-1].nome,memstr);
strcpy(memstr,calcio[ciclo].cognome);
strcpy(calcio[ciclo].cognome,calcio[ciclo-1].cognome);
strcpy(calcio[ciclo-1].cognome,memstr);
strcpy(memstr,calcio[ciclo].squadra);
strcpy(calcio[ciclo].squadra,calcio[ciclo-1].squadra);
strcpy(calcio[ciclo-1].squadra,memstr);
mem=calcio[ciclo].gol;
calcio[ciclo].gol=calcio[ciclo-1].gol;
calcio[ciclo-1].gol=mem;
flag=0;
}
else
{
flag++;
}
}
passo++;
}
}
void ordinacognome()
{
int ciclo,flag=0,passo=0,mem;
char memstr[20];
while(!flag)
{
for(ciclo=NUM-1;ciclo>passo;ciclo--)
{
if(strcmp(calcio[ciclo].cognome,calcio[ciclo-1].cognome)<0)
{
strcpy(memstr,calcio[ciclo].nome);
strcpy(calcio[ciclo].nome,calcio[ciclo-1].nome);
strcpy(calcio[ciclo-1].nome,memstr);
strcpy(memstr,calcio[ciclo].cognome);
strcpy(calcio[ciclo].cognome,calcio[ciclo-1].cognome);
strcpy(calcio[ciclo-1].cognome,memstr);
strcpy(memstr,calcio[ciclo].squadra);
strcpy(calcio[ciclo].squadra,calcio[ciclo-1].squadra);
strcpy(calcio[ciclo-1].squadra,memstr);
mem=calcio[ciclo].gol;
calcio[ciclo].gol=calcio[ciclo-1].gol;
calcio[ciclo-1].gol=mem;
flag=0;
}
else
{
flag++;
}
}
passo++;
}
}
void ordinasquadra()
{
int ciclo,flag=0,passo=0,mem;
char memstr[20];
while(!flag)
{
for(ciclo=NUM-1;ciclo>passo;ciclo--)
{
if(strcmp(calcio[ciclo].squadra,calcio[ciclo-1].squadra)<0)
{
strcpy(memstr,calcio[ciclo].nome);
strcpy(calcio[ciclo].nome,calcio[ciclo-1].nome);
strcpy(calcio[ciclo-1].nome,memstr);
strcpy(memstr,calcio[ciclo].cognome);
strcpy(calcio[ciclo].cognome,calcio[ciclo-1].cognome);
strcpy(calcio[ciclo-1].cognome,memstr);
strcpy(memstr,calcio[ciclo].squadra);
strcpy(calcio[ciclo].squadra,calcio[ciclo-1].squadra);
strcpy(calcio[ciclo-1].squadra,memstr);
mem=calcio[ciclo].gol;
calcio[ciclo].gol=calcio[ciclo-1].gol;
calcio[ciclo-1].gol=mem;
flag=0;
}
else
{
flag++;
}
}
passo++;
}
}
void main()
{
int i,scelta;
clrscr();
for(i=0;i<NUM;i++)
{
printf("%dø giocatore\n\n",i+1);
printf("Inserire il nome: ");
fflush(stdin);
scanf("%s",&calcio[i].nome);
printf("Inserire il cognome: ");
fflush(stdin);
scanf("%s",&calcio[i].cognome);
printf("Inserire il nome della squadra: ");
fflush(stdin);
scanf("%s",&calcio[i].squadra);
printf("Inserire il numero di gol fatti: ");
fflush(stdin);
scanf("%d",&calcio[i].gol);
printf("\n\n");
}
clrscr();
do
{
do
{
clrscr();
printf("Men— di scelta\n\n");
printf("1. Ordina per nome\n");
printf("2. Ordina per cognome\n");
printf("3. Ordina per squadra\n");
printf("4. Ordina per gol\n");
printf("5. Uscita\n\n");
printf("Scelta: ");
fflush(stdin);
scanf("%d",&scelta);
}while((scelta<1)&&(scelta>5));
switch(scelta)
{
case 1:
{
ordinanome();
clrscr();
printf("Elenco per nome\n\n\n");
for(i=0;i<NUM;i++)
{
printf("%s\t%s\t%s\t%d\n",calcio[i].nome,calcio[i].cognome,calcio[i].squadra,calcio[i].gol);
}
getch();
}break;
case 2:
{
ordinacognome();
clrscr();
printf("Elenco per cognome\n\n\n");
for(i=0;i<NUM;i++)
{
printf("%s\t%s\t%s\t%d\n",calcio[i].nome,calcio[i].cognome,calcio[i].squadra,calcio[i].gol);
}
getch();
}break;
case 3:
{
ordinasquadra();
clrscr();
printf("Elenco per squadra\n\n\n");
for(i=0;i<NUM;i++)
{
printf("%s\t%s\t%s\t%d\n",calcio[i].nome,calcio[i].cognome,calcio[i].squadra,calcio[i].gol);
}
getch();
}break;
case 4:
{
ordinagol();
clrscr();
printf("Classifica marcatori\n\n\n");
for(i=0;i<NUM;i++)
{
printf("%s\t%s\t%s\t%d\n",calcio[i].nome,calcio[i].cognome,calcio[i].squadra,calcio[i].gol);
}
getch();
}break;
case 5:
{
}break;
}
}while(scelta!=5);
getch();
}