begin process at 2012 05 30 04:16:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

menu avec un switch


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

menu avec un switch

lundi 7 février 2005 à 19:58:52 | menu avec un switch

natacha86

je ne comprend pas pkoi le programme une fois qu'il a lancé le premier choix du menu a la fin il ne reviens pas au menu, il s'arrete directement,
merci d'avance...



#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>

#define MAX 100


void tri_bulle()
{
    int nb,i,j,v,tab[MAX];  /* Déclarations */

    srand(time(NULL));      /* Initialisation du générateur aléatoire avec la fontion time */
    printf("\n\n Nombre de valeurs a trier (du tableau)  : ");
    scanf("%d", &nb);       /* Demande le nombre d'éléments à trier */
    printf("\n");

    for(i=0;i<nb;i++)       /* Remplissage du tableau aléatoirement */
        tab[i]=rand();

    printf("Les valeurs avant le tri :     ");   /* affichage du tableau */
    for(i=0; i<nb;i++)
        printf("\n%d       ",tab[i]);


    for (i=0; i<nb; i++)    /* tri */
        for (j=nb-1; j>i; j--)
            if (tab[j-1]>tab[j])
            {
    v=tab[j-1];
                tab[j-1]=tab[j];
                tab[j]=v;
             }

    printf("\n\nLes valeurs apres le tri :");   /* affichage du tableau */
    for(i=0; i<nb;i++)
        printf("\n%d       ",tab[i]);

    system("PAUSE");
}


/************************ programme principal ****************************/

int main()
{
    /* déclarations */
     int choix=0;

     printf("\n\n\t\t\t     ****************\n");
     printf("\t\t\t     *MENU PRINCIPAL*\n");
     printf("\t\t\t     ****************\n\n\n\n");
     printf("\t   TAPEZ :\n\n\n\n");
     printf("\t\t1\t   Pour :\t    Lancer le prog de tri a bulle\n\n");
     printf("\t\t2\t   Pour :\t    Lancer le prog de tri par insertion\n\n");
     printf("\t\t3\t   Pour :\t    Lancer le prog de tri par ext\n\n");
     printf("\t\t4\t   Pour :\t    Lancer le prog de tri shell\n\n");
     printf("\t\t5\t   Pour :\t    Lancer le prog de tri fusion\n\n");
     printf("\t\t6\t   Pour :\t    Lancer le prog de tri rapide\n\n");
     printf("\t\t7\t   Pour :\t    Quitter le programme\n\n\n");
     printf("\t   CHOIX : ");
     scanf("%d",&choix);

     switch(choix)
     {
        case 1 : tri_bulle();
                 break;

        case 7 : break;

     }

}


lundi 7 février 2005 à 20:40:12 | Re : menu avec un switch

bayeto

Membre Club

et oui il se termine. Essaye de mettre ton switch dans une bloucle infini et tu fais un return pour la quitter.

while(1)
{
   //affichage du menu...
   switch(choix)
   {
      case 7:
         return 0; //bye bye
   }
}

lundi 7 février 2005 à 20:42:25 | Re : menu avec un switch

Arnaud16022

Membre Club
Réponse acceptée !

le probleme vient de la:

switch(choix)
     {
        case 1 : tri_bulle();
                 break;

        case 7 : break;

     }

aie!! bon on reprend tout...
déja ton switch ne prend en compte que les cas 1 et 7, que se passe t-il si j'ai la mauvaise idée (moi ou mon petit frere de 6 mois qui sait meme po ce qu'est un clavier) de taper 0, 5 ou 6876546?
donc:

switch(choix){
        case 1 : tri_bulle(); break;

        case 7 : break;

         default: break; // si  choix ne correspond a aucun choix possible, ciao...
   }

ensuite:
case 7 : break; ne fait rien, on peut le virer, de toute facon si tu tapes 7 ca sera pris en charge par le case 'defaut'

bon. que se passe-t-il quand tu tapes 1 ?  le prog passe au switch, il trouve que le premier case va, il fait le tri, puis break;
break signifie que le prog va a la fin du switch, apres le }
qu'y a-t-il apres? le } qui signifie la fin de main()... et donc la fin du prog.
donc, ton prog ne plante pas du tout, ta fonction ded tri n'est pas en cause, mais c'est toi qui n'as pas prévu un retour un peu plus haut.
reprenons:

void main(void){
int choix= 0;
bool continue=true;
while (continue==true){
printf ("tout ton menu");
scanf("%d",&choix);

switch(choix) {
        case 1 : tri_bulle();break;

       case 8:continue=false;
//tes autres case

  default: printf("hé ducon lis les instructions ;) ");break;     }

}
}

bon.. ca devrait aller comme ca.

____
Omnia vincit labor improbus
lundi 7 février 2005 à 20:43:56 | Re : menu avec un switch

Arnaud16022

Membre Club

oups on a répondu + vite que moi
_______________________
Omnia vincit labor improbus
lundi 7 février 2005 à 20:46:56 | Re : menu avec un switch

Arnaud16022

Membre Club
dis donc byeto ta méthode est pas tres propre.
le return 0 s'adresse a main(), et ferme le prog; que se passe t-il si elle veut faire autre chose apres avoir tapé 7 (enregistrement parametres par ex )?
mais bon, dans ce cas precis ca marche..
_______________________
Omnia vincit labor improbus
lundi 7 février 2005 à 20:56:29 | Re : menu avec un switch

natacha86

le break ne fonctionne pas, il boucle, comme s'il garder les valeurs saisie,

en ce qui concerne le menu, j'ai pas mis tout le programme pour que ca soit plus clair

merci

lundi 7 février 2005 à 21:06:39 | Re : menu avec un switch

bayeto

Membre Club
Et bien tu deplace le menu dans une fonction autre que main par exemple... Ah au fait c'etait juste un exemple.
lundi 7 février 2005 à 21:53:57 | Re : menu avec un switch

Arnaud16022

Membre Club
quel break?

_______________________
Omnia vincit labor improbus
lundi 7 février 2005 à 22:01:46 | Re : menu avec un switch

natacha86

c'est bon merci le pb est regle, merci pour votre aide mais j'ai encore un pb !!!!!!! lol, la chieuse, c'est le premier post


Cette discussion est classée dans : lancer, tri, printf, include, tab


Répondre à ce message

Sujets en rapport avec ce message

a l aiiiiiiiiidddddeeeeeeeee [ par natacha86 ] je ne comprend pas pkoi le programme une fois qu'il a lancé le premier choix du menu a la fin il ne reviens pas au menu, il s'arrete directement, merc aide par rapport a l'appel d'une méthode [ par natacha86 ] quel est le probleme de ma méthode init_tab ? le programme s'arrete aprse etre passé dans cette méthode, il plante, et ne rentre pas dans la méthode d help une fonction qui a besoin de vous [ par natacha86 ] Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell pb en c urgenttttttttttttttttt [ par natacha86 ] bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as Chaine de caractère [ par Thanatoster ] Bonjour a tous, mon problème est le suivant, pour les cours je dois faire un programme d'apres l'énoncé suivant"saisir au clavier des éléments chaine Programme Tri à Bulle [ par tivanbelle ] Bonjour,J'ai fait ce programme en cours, c'est un tri a bullequi tri des valeur donc 2à2, mais le programme ne fonctionne pas. Pouvez vous me dire ce HELP [ par alex64100 ] BONOURje doit réaliser un   prog de tri de caractèresvoici mon code#include #include #include #include int main (int argc,  char ar encore un pb en c svp....... [ par natacha86 ] j'ai essayer de séparer les fonctions mais ca ne marche pas...#include #include #include #include #include #define MAX 1000000 besoin d'aide dans programme en c [ par houda986 ] salut; je suis un débutante en programmation et j'ai besoin d'aide pour la résolution d'un programme en C,c'est un programme de tri par base ... j'ai


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales