ciao a tutti ragazzi....
allora mi è stato assegnato un esercizio sulle strutture...
Quattro università si sfidano in un torneo sportivo. Alla sfida partecipano N studenti contrassegnati da un intero tra 0 e N-1. Ogni studente compare una sola volta. L’elenco dei partecipanti viene memorizzato in un vettore di strutture. La struttura deve contenere il tipo di sport praticato, il codice dell’Università di appartenenza (intero tra 0 e 3) e la posizione in classifica nella gara.
Costruire una funzione che permetta di visualizzare dal main i codici delle Università in cui almeno due studenti sono arrivati primi nelle loro gare.
ho svolto in questo modo(vedi sotto).. ma c'è un errore, nel senso che mi stampa anche il codice di una facoltà dove è arrivato solo uno studente primo. mi aiutate a capire dove sbaglio??grazie in anticipo
#include<stdio.h>
struct gare{
char sport[20];
int codice;
int posizione;
};
int stampaprimi (struct gare *, int );
main()
{
struct gare v[100];
int i, n=5, cod;
//acquisizione dati
for(i=0;i<n;i++)
{
printf("\nInserisci Sport praticato dallo studente n.%d: ", i+1);
scanf("%s",v[i].sport);
printf("\nInserisci codice universita' studente n.%d: (intero compreso tra 0-3)", i+1);
scanf("%d",&v[i].codice);
if(v[i].codice > 3){
printf("Codice facoltà non corretto!\n Reiserisci il codice ricordando che sia compreo tra 0-3!:");
scanf("%d",&v[i].codice);
printf("\nInserisci posizione in classifica dello studente n.%d: (intero compreso tra 1 e 10)", i+1);
scanf("%d",&v[i].posizione);}
else{
printf("\nInserisci posizione in classifica dello studente n.%d: (intero compreso tra 1 e 10)", i+1);
scanf("%d",&v[i].posizione);}
}
printf("\n\n");
//stampa dati struttura
printf("STUDENTE SPORT CODICE POSIZIONE\n");
printf("---------------------------------------------\n");
for(i=0;i<n;i++){
printf("\n\t%d%10s%8d%15d\n", i+1,v[i].sport, v[i].codice, v[i].posizione);
}
stampaprimi(v,n);
fflush(stdin);
getchar();
}
int stampaprimi (struct gare *v, int n )
{
int i, primi=0, pos;
for(i=0;i<n;i++){
if(v[i].posizione==1){
primi++;
pos=i;
}
if(primi=>2)
printf("\n %d ", v[pos].codice);
}
}