Ciao a tutti sono nuovo su questo forum lo ho trovato girando su internet mentre cercavo una soluzione per un problema che ho durante la risoluzione di una specifica di informatica
Questa è la specifica del programma
Scrivere un programma che legge un intero N seguito da N coppie: squadra (stringa di caratteri costituita da una sola parola), punteggio (numero intero), e da un carattere ch, e che determina se tutte le squadre con il punteggio massimo hanno un nome che inizia con il carattere ch. Si assuma che N sia minore o uguale a 50 e che i nomi di squadra siano lunghi al più 20 caratteri. Procedere nel modo seguente:
usare preferibilmente un sottoprogramma di tipo procedura che svolge il seguente compito:
riceve come parametri una lista di coppie (squadra,punteggio) e restituisce, sempre attraverso un parametro di scambio, il massimo punteggio presente nella lista
io ho buttato giù un codice è credo che tutto vada bene tranne una cosa come faccio a comparare ch con il nome della squadra ho provato ad usare strcmp ma il compilatore mi da errore
vi lascio il codice grazie in anticipo per l ' aiuto
#include <iostream>
#include <string.h>
#define MAX 50
#define MAXLE 20
using namespace std;
typedef char tipoparola [MAXLE+1];
typedef struct{
tipoparola squadra;
int punteggio;
}team;
void max(team squadrone[],int& maxi,int n);
int main(){
int n,i,ris,c,a;
team squadrone[MAX];
char ch;
cin>>n;
cin>>ch;
for (i=0; n>i; i++){
cin>>squadrone[i].squadra;
cin>>squadrone[i].punteggio;
}
c=0;
a=0;
max(squadrone,ris,n);
for (i=0; n>i; i++){
if(ris==squadrone[i].punteggio)
c++;
if(squadrone[i].squadra==ch)
a++;
}
if (c==a)
cout<<"ok";
else
cout<<"non ok";
}
void max(team squadrone[],int& maxi,int n){
int i;
maxi=squadrone[i].punteggio;
for (i=1; n>i; i++){
if(maxi<squadrone[i].punteggio)
maxi=squadrone[i].punteggio;}
}