Necessito di un aiuto con un programma.
Quest'ultimo deve ricevere da input nome e cognome di alcuni studenti di una classe (tramite record). Successivamente deve far inserire la media dei voti che questi studenti hanno preso nel corso dell'anno. Ora arriva il problema. L'utente dovrà poi inserire il cognome corrispondente allo studente di cui vuole sapere la media totale dei voti ottenuti nell'anno scolastico. Il problema sta nel fatto che non riesca a creare un ciclo tale che mi permetta di controllare due stringhe in char (di cui una contenuta nel record).
La prima parte è perfettamente funzionante. Il problema persiste nella seconda dove, al controllo della equivalenza delle due stringhe, il programma smette di funzionare non ricavandone il nome selezionato (utilizzato come test solo per vedere se il ciclo funzionasse o meno).
Qualcuno sa dirmi come posso risolvere il problema?
Vi mostro qual'era l'idea del programma:
#include<cstdlib>
#include<iostream>
using namespace std;
main(){
struct Registro{
char Nome[50];
char Cognome[50];
int ita;
int sto;
int filo;
int fis;
int sci;
int mat;
int ing;
int inf;
int rel;
int mot;
int art;
};
char CR[50];
float somma,media;
char T[50];
int x=0;
Registro R[2];
for(int i=0;i<2;i++){
cout<<endl<<"Inserire il nome del "<<i+1<<"^ alunno: ";
cin>>R[i].Nome;
cout<<"Bene, ora inserire il cognome: ";
cin>>R[i].Cognome;
cout<<"Ora bisogna inserire le medie dei voti delle materie richieste:"<<endl;
cout<<"Italiano: ";
cin>>R[i].ita;
cout<<"Storia: ";
cin>>R[i].sto;
cout<<"Filosofia: ";
cin>>R[i].filo;
cout<<"Fisica: ";
cin>>R[i].fis;
}
cout<<endl<<"Inserire il cognome dello studente di cui si vuole sapere la media totale: ";
cin>>CR[50];
cout<<endl<<"Ricerca in corso.."<<endl;
for(int i=0;i<2;i++){
do{
if(CR[x]==R[i].Cognome[x]){
T[x]=CR[x];
x++;
}else{
i++;
}
}while(x<10);
}
cout<<""<<T[50];
}