Salve a tutti, avrei un piccolo problema con il completamento di un programma. Praticamente l'output del programma dovrebbe essere così:
Quante persone vuoi immettere (max 10)? 33
Errore! Quante persone vuoi immettere (max 10)? 3
Immetti il cognome: bianchi
Immetti l'eta': 35
Immetti il cognome: verdi
Immetti l'eta': 38
Immetti il cognome: rossi
Immetti l'eta': 35
I piu' giovani sono:
bianchi
rossi
Ora io sono riuscito a creare il programma che riesce a stamparmi il più giovane fra i membri elencati, tuttavia l'esercizio mi chiede di stampare i più giovani, in caso ci fossero persone della stessa età più giovani (come mostrato nell'esempio output soprastante). Qui di sotto vi allego il programma che ho scritto, che però mi da come output solo il più giovane senza elencarmene altri con la sua stessa età.
#include <iostream>
using namespace std;
struct persona
{
char cognome[50];
int eta;
};
int main()
{
persona p[10];
int n=0;
do
{
cout<<"Quante persone vuoi inserire? (max 10) "<<endl;
cin>>n;
while(n>10 || n<=0)
{
cout<<"ERRORE!";
cout<<"Quante persone vuoi inserire? (max 10) "<<endl;
cin>>n;
}
}
while(!(n<=10));
for (int i=0; i<n ;i++)
{
cout<<"Immetti il cognome: "<<endl;
cin>>p[i].cognome;
cout<<"Immetti l'eta': "<<endl;
cin>>p[i].eta;
}
cout<<"I piu' giovani sono: "<<endl;
string young;
for (int i=0;i<n-1;i++)
{
if (p[i].eta > p[i+1].eta)
{
young = p[i+1].cognome;
}
}
cout<<young<<endl;
return 0;
}