codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 50
#define TRUE 1
#define FALSE 0
int main()
{
FILE* f1;
FILE* f2;
int i, q, n1, n2, stato, sostituzioni1=0, sostituzioni2=0, giocatori=1;
float punteggio1=0.0, punteggio2=0.0;
typedef struct
{
char nome[N];
char ruolo[1];
char voto[10];
} squadra;
squadra team1[18];
squadra team2[18];
if ((f1=fopen("formazione1.txt", "r"))==NULL)
{
printf("ERRORE APERTURA FILE: formazione1.txt\n");
return EXIT_FAILURE;
}
if ((f2=fopen("formazione2.txt", "r"))==NULL)
{
printf("ERRORE APERTURA FILE: formazione2.txt\n");
return EXIT_FAILURE;
}
for (i=0, stato=fscanf(f1, "%s %s", team1[i].nome, team1[i].ruolo); stato!=EOF && i<N; i++, stato=fscanf(f1, "%s %s", team1[i].nome, team1[i].ruolo));
n1=i;
for (i=0, stato=fscanf(f2, "%s %s", team2[i].nome, team2[i].ruolo); stato!=EOF && i<N; i++, stato=fscanf(f2, "%s %s", team2[i].nome, team2[i].ruolo));
n2=i;
fclose(f1);
fclose(f2);
//assegnazioni voti squadra2
printf("FORMAZIONE 1\nInserire i voti dei giocatori richiesti\n");
for (i=0; i<n1; i++)
{
printf("%s : ", team1[i].nome);
scanf("%s", team1[i].voto);
}
//assegnazioni voti squadra2
printf("FORMAZIONE 2\nInserire i voti dei giocatori richiesti\n");
for (i=0; i<n2; i++)
{
printf("%s : ", team2[i].nome);
scanf("%s", team2[i].voto);
}
int trovato=FALSE;
//calcolo punteggi squadra1
i=0;
giocatori=1;
while (giocatori<12 && i<11)
{
if (strcmp(team1[i].voto, "x")==0)
{
trovato=FALSE;
if (sostituzioni1<4)
{
for (q=11; q<n2 && !trovato;q++)
{
if (strcmp(team1[i].ruolo, team1[q].ruolo)==0)
{
strcpy(team1[i].voto, team1[q].voto);
trovato=TRUE;
sostituzioni1++;
}
else strcpy(team1[i].voto, "0");
}
}
else strcpy(team1[i].voto, "0");
}
giocatori++;
i++;
}
//calcolo punteggi squadra2
i=0;
giocatori=1;
while (giocatori<12 && i<11)
{
if (strcmp(team2[i].voto, "x")==0)
{
trovato=FALSE;
if (sostituzioni2<4)
{
for (q=11; q<n2 && !trovato;q++)
{
if ((strcmp(team2[i].ruolo, team2[q].ruolo))==0)
{
strcpy(team2[i].voto, team2[q].voto);
trovato=TRUE;
sostituzioni2++;
}
else strcpy(team2[i].voto, "0");
}
}
else strcpy(team2[i].voto, "0");
}
giocatori++;
i++;
}
for (i=0; i<11; i++)
punteggio1+=atof(team1[i].voto);
printf("PUNTEGGIO SQUADRA 1 : %.1f\n", punteggio1);
for (i=0; i<11; i++)
punteggio2+=atof(team2[i].voto);
printf("PUNTEGGIO SQUADRA 2 : %.1f", punteggio2);
return 0;
}