Oppure

Loading
08/05/22 21:56
AldoBaldo
Quando scrivi

    v[i].punti=+1; (e simili)

intendi effettivamente

    v[i].punti=+1; oppure
    v[i].punti+=1;
Ultima modifica effettuata da AldoBaldo 08/05/22 21:57
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
09/05/22 14:55
Qui

for(j=0;j<5;j++)


j non è dichiarata.


Ha ragione il compilatore.

Queste

v[i].punti=+1;
v[i+1].punti=+1;
v[i].punti=+3;


sono sbagliate, devono essere

v[i].punti += 1;  ( oppure v[i].punti++; )
v[i+1].punti += 1;   ( oppure v[i+1].punti++; )
v[i].punti += 3;


Devi conoscere bene le basi della sintassi del linguaggio prima di scrivere codice, altrimenti è inutile dire che impazzisci.

Ultima modifica effettuata da 09/05/22 15:00
09/05/22 19:27
MrMind6767
nonostante aver coorretto tutto non mi stampa la classifica, ma solo lo cout classifica
09/05/22 20:53
MrMind6767
Postato originariamente da AldoBaldo:
#include<iostream>
using namespace std;
 
struct partita {
    string squ1;
    string squ2;
    int goals1;
    int goals2;
};

struct squadra {
    string squad;
    int punti;
};
 
int menu(void);
void inser(squadra v[]);
void giocata(partita p[]);
void classifica(squadra v[],partita p[],int vin,int per, int par);
 
int main() {
    int scelta;
    squadra sq[5];   //array di 5 per le 5 squadre
    partita par[10]; //array di 10 per le 10 partite
    int vinte=0;     //contatore delle vinte
    int perse=0;     //contatore delle perse
    int pareggi=0;   //contatore dei pareggi
    
    do {
        menu();
        cout<<&quot;Cosa vuoi fare?\n&quot;<<endl;
        cin>>scelta;
               
        switch(scelta){
            case 1:
                inser(sq);
                break;
            
            case 2:
                giocata(par);
                break;
                
            case 3:
                classifica(sq,par,vinte,perse,pareggi);
                break;
            
            case 4:
                break;
            
            case 5:
                break;
        }
    } while(scelta!=5);
}
 
 
int menu(void) {
    cout<<&quot;******GESTIONE CAMPIONATO****** &quot;<<endl;
    cout<<&quot;1. Inserisci squadre &quot;<<endl;
    cout<<&quot;2. Inserisci partita &quot;<<endl;
    cout<<&quot;3. Mostra classifica &quot;<<endl;
    cout<<&quot;4. Decreta vincitore &quot;<<endl;
    cout<<&quot;5. Esci&quot;<<endl;
}
 
void inser(squadra v[]) {
    cout<<&quot;--------INSERIMENTO SQUADRE--------\n&quot;<<endl;
    for(int i=0;i<5;i++) {
        cout<<&quot;Inserisci il nome della squadra: &quot;;
        cin>>v[i].squad;
        v[i].punti=0;
    }
}
 
void giocata(partita p[]) {
    cout<<&quot;--------INSERIMENTO PARTITA--------\n&quot;<<endl;
    int num;

    do {
        cout<<&quot;Inserisci un numero delle partite tra 1 e 10 &quot;<<endl;
        cin>>num;
    } while((num<=0)||(num>10));
 
    for(int i=0;i<1;i++) {
        cout<<&quot;Inserisci il nome della 1&quot;<<char (167)<<&quot;squadra: &quot;;
        cin>>p[i].squ1;
        cout<<&quot;Inserisci il risutato della partita: &quot;<<endl;
        cin>>p[i].goals1;
        cout<<&quot;Inserisci il nome della 2&quot;<<char (167)<<&quot;squadra: &quot;;
        cin>>p[i].squ2;
        cout<<&quot;Inserisci il risutato della partita: &quot;<<endl;
        cin>>p[i].goals2;
    }
}

void classifica(squadra v[],partita p[],int vin,int per, int par) {
    cout<<&quot;--------CLASSIFICA--------\n&quot;;
 
    for(int i=0;i<10;i++) {
        if(p[i].goals1>p[i].goals2) {
            for(j=0;j<5;j++) {                  // in questo blocco j non è
                if(p[j].squ1==v[j].squad)       // dichiarato - per dichiararlo 
                    v[j].punti=v[j].punti+3;    // basta aggiungere int prima
            }                                   // di j=0...
        }
        else if(p[i].goals1==p[i].goals2) {     
            for(int j=0;j<5;j++ ) {             // ...come hai fatto qui
                if(p[i].squ1==v[j].squad)
                    v[j].punti=v[j].punti+3;
            }              
       
            v[i].punti=+3;
        }
        else if(p[i].goals1>p[i].goals2) {
            v[i].punti=+1;
            v[i+1].punti=+1;
        }
        else {
            v[i].punti=+3;
        }
    }
}

Può essere stata una svista, ma se non è così l'argomento da riconsiderare riguarda l'àmbito di visibilità delle variabili (in inglese lo trovi indicato come scope).

si una svista grazieee
10/05/22 14:08
Non hai fatto le modifiche.

Manca la stampa della classifica.
Ultima modifica effettuata da 10/05/22 14:10
10/05/22 19:28
MrMind6767

void classifica(squadra v[],partita p[],int vin,int per, int par){
	cout<<"--------CLASSIFICA--------\n";

for(int i=0;i<10;i++){

		if(p[i].goals1>p[i].goals2){
			
			for(int j=0;j<5;j++){
			
				if(p[j].squ1==v[j].squad){v[j].punti=v[j].punti+3;
				}
			}
	}	else if(p[i].goals1==p[i].goals2){
		for(int j=0;j<5;j++ ){ 
			if(p[i].squ1==v[j].squad){
				v[j].punti=v[j].punti+3;
			
	
	}
	}		
	
	v[i].punti+=3;	}
	else if(p[i].goals1>p[i].goals2){
		v[i].punti+=1;
		v[i+1].punti+=1;
		
	}
else{
	
	v[i].punti+=3;
}	cout<<v[i].squad<<endl<<v[i].punti;
}

}


Non in questo modo giusto?
21/05/22 10:02
MrMind6767
Risolto
Ultima modifica effettuata da MrMind6767 21/05/22 10:07
21/05/22 12:21
Grazie per la notizia