2012-12-03 2 views
0

Je veux faire seulement une chose dans ce cycle ... - l'IF ou l'AUTRE .. (quand son vrai et faux .c comme vous le savez ..) Si j'ai deux les étudiants dactylographiés avec leurs informations et mon premier étudiant dans le groupe 1 ne sont pas avec une excellente note et le deuxième un étudiant avec une excellente note imprime mon programme: 1) première boucle sur: il est faux donc il fait l'autre 2) seconde boucle pour: il est vrai il fait si laComment arrêter le cycle après une erreur

et j'ai: Aucune information étudiant avec qualité excellente ...

Je veux voir seulement les étudiants avec Excelle nt grade (si j'utilise BREAK; je vais arrêter le cycle FOR) Voici mon code:

int gr; 
cout<<"Enter group that you want to check: ";cin>>gr; 
cout<<"Students with excellent grade in group "<<gr<<":\n"; 
    for(i=0;i<n;i++) 
     { 
      if(m[i][2]==gr && m[i][3]>=5.500) 
      { 
       for(j=0;j<4;j++) 
        cout<<setprecision(8)<<m[i][j]<<"\t"; 
      } 
      else 
        cout<<"No students with excellent grade in this group"<<endl; 

     } 

J'ai le même problème ici. Puis-je utiliser le type "bool" et comment dans ce code (code est basé sur struct):

int x; 
bool no_info=false; 
p: cout<<"| What personal id you want to search for: ";cin>>x; 

for(int i=0;i<n;i++) 
{ 
    if(pov[i].id==x) 
    { 
    no_info=true; 
    cout<<pov[i].id<<endl; 
    cout<<pov[i].name<<endl; 
    cout<<pov[i].lastname<<endl; 
    cout<<pov[i].department<<endl; 
    cout<<pov[i].salary<<endl; 
    } 
} 
    if(no_info){ 
    cout<<"No information"<<endl;} 
goto p; 

ÉDITÉ !!!

+0

Donc, vous savez, l'étiquette de devoirs est [obsolète] (http://meta.stackexchange.com/questions/147100/the-homework-tag-is-now-officially-deprecated). – chris

+0

Créer un tableau en dehors de la boucle. À l'intérieur de la boucle lorsque vous trouvez un étudiant le stocker dans le tableau. Après la boucle, vous avez maintenant tous les étudiants que vous voulez dans le tableau. – peacemaker

+0

désolé pour l'étiquette de devoirs, et pacificateur je pensais à ce sujet mais ... je ne peux pas le faire avec autre chose:? – Koleto

Répondre

2

Il est difficile de comprendre ce que vous essayez d'atteindre. Mais je pense que ce que vous voulez est:

int gr; 
bool no_excellents = true; 
cout<<"Enter group that you want to check: ";cin>>gr; 
cout<<"Students with excellent grade in group "<<gr<<":\n"; 
for(i=0;i<n;i++) 
{ 
    if(m[i][2]==gr && m[i][3]>=5.500) 
    { 
     no_excellents = false; 
     for(j=0;j<4;j++) 
      cout<<setprecision(8)<<m[i][j]<<"\t"; 
    } 
} 

if(no_excellents) 
{ 
    cout<<"No students with excellent grade in this group"<<endl; 
} 

Ce ne sera pas arrêter votre boucle for, et n'imprimer les étudiants qui ont d'excellentes notes. Si personne n'a d'excellentes notes, le programme vous le dira.

+0

oui mais il ne me montrera pas si dans ce groupe ne sont pas des étudiants avec une excellente note – Koleto

+0

@ Koleto: Vous voulez afficher deux listes? Ceux qui ont d'excellentes notes, et ceux qui n'en ont pas? – dinkelk

+0

@chris Oui, vous avez raison. Modifications effectuées. – dinkelk

Questions connexes