Votre question

Faire un do while en C

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
2 Avril 2006 17:49:43

Bonjour tout le monde,

voila je n'arrive pas a faire sur mon programme un do while, je voudrais que quand on appuie sur la lettre Q par exemple le programme ce quitte parce que sinon ca me met appuyer sur une touche pour continuer et moi je veut que ca soit que la lettre Q.

Merci d'avance.

Voici mon code

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7. double resultat = 0, nombre1 = 0, nombre2 = 0, nombre3 = 2;
  8. int choixmenu;
  9. printf("Bienvenue sur le programme de Sliverman\n\n\n");
  10. printf("Que voulez vous faire ?\n\n");
  11. printf("1. Faire une addition\n");
  12. printf("2. Faire une soustraction\n");
  13. printf("3. Faire une multiplication\n");
  14. printf("4. Faire une division\n\n\n");
  15.  
  16. scanf("%i", &choixmenu);
  17.  
  18. //Choix menu
  19.  
  20. switch (choixmenu)
  21. {
  22. case 1:
  23. printf("Vous allez effectuer une addition\n\n");
  24.  
  25. printf("Entrez le nombre 1 : \n"); // on effectue une addition
  26. scanf("%lf", &nombre1);
  27. printf("Entrez le nombre 2 : \n");
  28. scanf("%lf", &nombre2);
  29.  
  30. //on fait la somme
  31.  
  32. resultat = nombre1 + nombre2;
  33.  
  34. // On affiche a l'ecran
  35.  
  36. printf("%lf + %lf = %lf\n\n", nombre1, nombre2, resultat);
  37. break;
  38. case 2:
  39. printf("Vous allez effectuer une soustraction\n\n");
  40.  
  41. printf("Entrez le nombre 1 : \n"); // on effectue une soustraction
  42. scanf("%lf", &nombre1);
  43. printf("Entrez le nombre 2 : \n");
  44. scanf("%lf", &nombre2);
  45.  
  46. //on fait la soustraction
  47.  
  48. resultat = nombre1 - nombre2;
  49.  
  50. // On affiche a l'ecran
  51.  
  52. printf("%lf - %lf = %lf\n\n", nombre1, nombre2, resultat);
  53. break;
  54. case 3:
  55. printf("Vous allez effectuer une multiplication\n\n");
  56.  
  57. printf("Entrez le nombre 1 : \n"); // on effectue la multiplication
  58. scanf("%lf", &nombre1);
  59. printf("Entrez le nombre 2 : \n");
  60. scanf("%lf", &nombre2);
  61.  
  62. //on fait la multiplication
  63.  
  64. resultat = nombre1 * nombre2;
  65.  
  66. // On affiche a l'ecran
  67.  
  68. printf("%lf * %lf = %lf\n\n", nombre1, nombre2, resultat);
  69. break;
  70. case 4:
  71. printf("Vous allez effectuer une division\n\n");
  72.  
  73. printf("Entrez le nombre 1 : \n"); // on effectue la division
  74. scanf("%lf", &nombre1);
  75. printf("Entrez le nombre 2 : \n");
  76. scanf("%lf", &nombre2);
  77.  
  78. //on fait la division
  79.  
  80. resultat = nombre1 / nombre2;
  81.  
  82. // On affiche a l'ecran
  83.  
  84. printf("%lf / %lf = %lf\n\n", nombre1, nombre2, resultat);
  85. break;
  86.  
  87. default:
  88. printf("Aucun choix n'est disponible\n\n");
  89. break;
  90. }
  91. system("PAUSE");
  92. return 0;
  93. }

Autres pages sur : while

2 Avril 2006 18:01:45

Je ne pense pas que tu est besoin d'une boucle pour faire ca, mais sinon plus concretement pour ta reponse je ne sais pas ...
2 Avril 2006 18:08:18

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7. double resultat = 0, nombre1 = 0, nombre2 = 0, nombre3 = 2;
  8. int choixmenu;
  9. char quitter = 'C';
  10.  
  11. do
  12. {
  13. printf("Bienvenue sur le programme de Sliverman\n\n\n");
  14. printf("Que voulez vous faire ?\n\n");
  15. printf("1. Faire une addition\n");
  16. printf("2. Faire une soustraction\n");
  17. printf("3. Faire une multiplication\n");
  18. printf("4. Faire une division\n\n\n");
  19.  
  20. scanf("%i", &choixmenu);
  21.  
  22. //Choix menu
  23.  
  24. switch (choixmenu)
  25. {
  26. case 1:
  27. printf("Vous allez effectuer une addition\n\n");
  28.  
  29. printf("Entrez le nombre 1 : \n"); // on effectue une addition
  30. scanf("%lf", &nombre1);
  31. printf("Entrez le nombre 2 : \n");
  32. scanf("%lf", &nombre2);
  33.  
  34. //on fait la somme
  35.  
  36. resultat = nombre1 + nombre2;
  37.  
  38. // On affiche a l'ecran
  39.  
  40. printf("%lf + %lf = %lf\n\n", nombre1, nombre2, resultat);
  41. break;
  42. case 2:
  43. printf("Vous allez effectuer une soustraction\n\n");
  44.  
  45. printf("Entrez le nombre 1 : \n"); // on effectue une soustraction
  46. scanf("%lf", &nombre1);
  47. printf("Entrez le nombre 2 : \n");
  48. scanf("%lf", &nombre2);
  49.  
  50. //on fait la soustraction
  51.  
  52. resultat = nombre1 - nombre2;
  53.  
  54. // On affiche a l'ecran
  55.  
  56. printf("%lf - %lf = %lf\n\n", nombre1, nombre2, resultat);
  57. break;
  58. case 3:
  59. printf("Vous allez effectuer une multiplication\n\n");
  60.  
  61. printf("Entrez le nombre 1 : \n"); // on effectue la multiplication
  62. scanf("%lf", &nombre1);
  63. printf("Entrez le nombre 2 : \n");
  64. scanf("%lf", &nombre2);
  65.  
  66. //on fait la multiplication
  67.  
  68. resultat = nombre1 * nombre2;
  69.  
  70. // On affiche a l'ecran
  71.  
  72. printf("%lf * %lf = %lf\n\n", nombre1, nombre2, resultat);
  73. break;
  74. case 4:
  75. printf("Vous allez effectuer une division\n\n");
  76.  
  77. printf("Entrez le nombre 1 : \n"); // on effectue la division
  78. scanf("%lf", &nombre1);
  79. printf("Entrez le nombre 2 : \n");
  80. scanf("%lf", &nombre2);
  81.  
  82. //on fait la division
  83.  
  84. resultat = nombre1 / nombre2;
  85.  
  86. // On affiche a l'ecran
  87.  
  88. printf("%lf / %lf = %lf\n\n", nombre1, nombre2, resultat);
  89. break;
  90.  
  91. default:
  92. printf("Aucun choix n'est disponible\n\n");
  93. break;
  94. }
  95. printf("Quitter (Avec Q) ?");
  96. scanf("%s", &quitter);
  97. }
  98. while(quitter!='Q');
  99.  
  100. return 0;
  101. }


Edit : Testé et approuvé, ca fonctionne ;) 
Si tu as besoin de précisions n'hésites pas, mais ca me semble plutot clair ;-)
Contenus similaires
Pas de réponse à votre question ? Demandez !
2 Avril 2006 18:28:54

Merci ca marche tranquil.

Serai tu faire pareil mais en appuyant sur q et sa quitte sans avoir a appuyer sur Entrée.

Merci
2 Avril 2006 18:32:39

Je ne pense pas que ce soit possible dans la mesure où ici la machine attend la valeur retournée par l'utilisateur, justement avec ce "entrée" qui envoi la valeur à la variable...
Donc sans "enter" je ne pense pas que l'ordi irait chercher la première valeur frappée tout seul...
2 Avril 2006 19:01:16

Ou alors il faut utiliser une librairie pour gérer les évènements claviers. Mais dans ce cas cela ne se fera pas avec scanf();
a b L Programmation
2 Avril 2006 21:02:53

Sinon il y a la fonction getch() non ANSI, mais intégré dans la plupart des compilateurs.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS