Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
823 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème de débutant :p.

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de débutant :p.

n°1605539
deglingo85
Posté le 29-08-2007 à 01:38:22  profilanswer
 

Salut !, je suis nouveau sur ce forum et je débute en programmation c/c++ (j'ai commencer aujourd'hui),
j'ai appris vite fait quelque base par le site du zero mais voila je viens de tenter un programme moi même il compile sans erreur il se lance mais dés que je veut choisir ce que je veut faire il plante je ne sais pas pourquoi pourtant je pense avoir tout bien fait dans les rêgle.
Voila merci d'aider un pov débutant^^ lol.
 
Le code source en C fait sous Dev C++ :
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    long choixMenu, resultat = 0, nombreA = 0, nombreB = 0;
    double nombre1 = 0, nombre2 = 0;
     
    printf("\n\n***** Choisissez le type de calcul que vous souhaitez faire *****\n\n\n" );
    printf("1. l'Addition\n" );
    printf("2. la Soustraction\n" );
    printf("3. la Multiplication\n" );
    printf("4. la Division\n" );
    printf("\nVotre choix ? " );
    scanf("%ld", choixMenu);
     
    printf("\n" );
     
    switch (choixMenu)
    {
           case 1:
                printf("Entrez le nombre A : " );
                scanf("%ld", &nombreA);
                printf("Entrez le nombre B : " );
                scanf("%ld", &nombreB);
                resultat = nombreA + nombreB;
                printf("%ld + %ld = %ld\n", nombreA, nombreB, resultat);
                break;
           case 2:
                printf("Entrez le nombre A : " );
                scanf("%ld", &nombreA);
                printf("Entrez le nombre B : " );
                scanf("%ld", &nombreB);
                resultat = nombreA + nombreB;
                printf("%ld - %ld = %ld\n", nombreA, nombreB, resultat);
                break;
           case 3:
                printf("Entrez le nombre A : " );
                scanf("%ld", &nombreA);
                printf("Entrez le nombre B : " );
                scanf("%ld", &nombreB);
                resultat = nombreA + nombreB;
                printf("%ld * %ld = %ld\n", nombreA, nombreB, resultat);
                break;
           case 4:
                printf("Entrez le nombre A EX 5.0 : " );
                scanf("%lf", &nombre1);
                printf("Entrez le nombre B EX 2.0 : " );
                scanf("%lf", &nombre2);
                resultat = nombre1 + nombre2;
                printf("%lf / %lf = %lf\n", nombre1, nombre2, resultat);
                break;
                default:
                        printf("Vous avez entrer un nombre incorrect. Veuillez recommencez\n\n" );
                        break;
                        }
   
  system("PAUSE" );  
  return 0;
}
 
Voila sa vole pas haut bien sur mais c'est un très bon exercice je pense. ( j'ai lu les 6 premiers chapitre du site du zero j'ai eux 20/20 a tout les chapitres sauf a celui avec les if...else switch etc j'ai eu 7/20 lol j'étais totale embrouillé mais j'comprend que avec le switch if...else c'est le trou ^^'.

mood
Publicité
Posté le 29-08-2007 à 01:38:22  profilanswer
 

n°1605540
Emmanuel D​elahaye
C is a sharp tool
Posté le 29-08-2007 à 01:44:40  profilanswer
 

deglingo85 a écrit :

Salut !, je suis nouveau sur ce forum et je débute en programmation c/c++ (j'ai commencer aujourd'hui),


Il n'y a pas de "programmation C/C++".
 
Il y a la programmation, le langage C et le langage C++. Ce sont 3 choses différentes.
 

Citation :

j'ai appris vite fait quelque base par le site du zero mais voila je viens de tenter un programme moi même il compile sans erreur


Non. Ton compilateur est mal réglé :  
 
http://mapage.noos.fr/emdel/codage.htm#cfg_compilo
 

Citation :

Le code source en C fait sous Dev C++ :
 
#include <stdio.h>


Merci de lire les règles du forum et d'apprendre à utiliser les balises de code...
 
Tu devrais commencer par corriger ces erreurs :  


Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:16: warning: format argument is not a pointer (arg 2)
main.c:52: warning: double format, different type arg (arg 4)
main.c: At top level:
main.c:4: warning: unused parameter 'argc'
main.c:4: warning: unused parameter 'argv'
main.c: In function `main':
main.c:6: warning: 'choixMenu' might be used uninitialized in this function
Linking console executable: console.exe
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 5 warnings



---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1605541
deglingo85
Posté le 29-08-2007 à 02:01:05  profilanswer
 

Je viens d'ajouter ->-Wall -Wextra -O2 -Wwrite-strings -Wstrict-prototypes
 
dans outil -> option du compilateur
 
j'ai recompilé et il y a eux 5 warnings...
Merci pour la réponse rapide mais le problème c'est que je comprend pas comment rêgler le problème même si je sais d'ou sa viens...je serait peut-être quand j'aurais fini tout les chapitres sur le C...
 
EDIT: Je viens de rêgler le problème de la ligne 51.... mais les autres.....


Message édité par deglingo85 le 29-08-2007 à 02:09:04
n°1605542
deglingo85
Posté le 29-08-2007 à 02:18:37  profilanswer
 

Je viens de modifier quelque peu mon code source....Et les voicis dans les fameuses balises lol.

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[])
  4. {
  5.     long choixMenu, resultat = 0, nombreA = 0, nombreB = 0;
  6.     double nombre1 = 0, nombre2 = 0, resultat1 = 0;
  7.    
  8.     printf("\n\n***** Choisissez le type de calcul que vous souhaitez faire *****\n\n\n" );
  9.     printf("1. l'Addition\n" );
  10.     printf("2. la Soustraction\n" );
  11.     printf("3. la Multiplication\n" );
  12.     printf("4. la Division\n" );
  13.     printf("\nVotre choix ? " );
  14.     scanf("%ld", choixMenu);
  15.    
  16.     printf("\n" );
  17.    
  18.     switch (choixMenu)
  19.     {
  20.            case 1:
  21.                 printf("Entrez le nombre A : " );
  22.                 scanf("%ld", &nombreA);
  23.                 printf("Entrez le nombre B : " );
  24.                 scanf("%ld", &nombreB);
  25.                 resultat = nombreA + nombreB;
  26.                 printf("%ld + %ld = %ld\n", nombreA, nombreB, resultat);
  27.                 break;
  28.            case 2:
  29.                 printf("Entrez le nombre A : " );
  30.                 scanf("%ld", &nombreA);
  31.                 printf("Entrez le nombre B : " );
  32.                 scanf("%ld", &nombreB);
  33.                 resultat = nombreA + nombreB;
  34.                 printf("%ld - %ld = %ld\n", nombreA, nombreB, resultat);
  35.                 break;
  36.            case 3:
  37.                 printf("Entrez le nombre A : " );
  38.                 scanf("%ld", &nombreA);
  39.                 printf("Entrez le nombre B : " );
  40.                 scanf("%ld", &nombreB);
  41.                 resultat = nombreA + nombreB;
  42.                 printf("%ld * %ld = %ld\n", nombreA, nombreB, resultat);
  43.                 break;
  44.            case 4:
  45.                 printf("Entrez le nombre A EX 5.0 : " );
  46.                 scanf("%lf", &nombre1);
  47.                 printf("Entrez le nombre B EX 2.0 : " );
  48.                 scanf("%lf", &nombre2);
  49.                 resultat = nombre1 + nombre2;
  50.                 printf("%lf / %lf = %lf\n", nombre1, nombre2, resultat1);
  51.                 break;
  52.                 default:
  53.                         printf("Vous avez entrer un nombre incorrect. Veuillez recommencez\n\n" );
  54.                         break;
  55.                         }
  56.  
  57.   system("PAUSE" );
  58.   return 0;
  59. }


Message édité par deglingo85 le 29-08-2007 à 02:19:02
n°1605543
tpierron
Posté le 29-08-2007 à 05:03:04  profilanswer
 

Hmm, ton compilo aurait du beugler à la ligne 15 ...

n°1606585
Sve@r
Posté le 30-08-2007 à 23:19:35  profilanswer
 

tpierron a écrit :

Hmm, ton compilo aurait du beugler à la ligne 15 ...


En plus, quel que soit le choix, l'opération est toujours la même (cf lignes 26, 34, 42 et 50) mais ça, le compilo peut pas le voir...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1606589
dwogsi
Défaillance cérébrale...
Posté le 30-08-2007 à 23:31:24  profilanswer
 

tpierron a écrit :

Hmm, ton compilo aurait du beugler à la ligne 15 ...


Chez moi il dit rien (juste du warning, très clair soit dit en passant). Par contre à l'exécution...

 

Edit :
Bon vite fait comme ça, un peu meieux :

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(int argc, char *argv[])
  4. {
  5.     int choixMenu, nombreA, nombreB;
  6.     double resultat=0;
  7.    
  8.     printf("\n\n***** Choisissez le type de calcul que vous souhaitez faire *****\n\n\n" );
  9.     printf("1. l'Addition\n" );
  10.     printf("2. la Soustraction\n" );
  11.     printf("3. la Multiplication\n" );
  12.     printf("4. la Division\n" );
  13.     printf("\nVotre choix ? " );
  14.     scanf("%d", &choixMenu);
  15.    
  16.     printf("\n" );
  17.    
  18.     printf("Entrez le nombre A : " );
  19.     scanf("%d", &nombreA);
  20.     printf("Entrez le nombre B : " );
  21.     scanf("%d", &nombreB);
  22.    
  23.     switch (choixMenu)
  24.     {
  25.            case 1:
  26.                 resultat = nombreA + nombreB;
  27.                 break;
  28.            case 2:
  29.                 resultat = nombreA - nombreB;
  30.                 break;
  31.            case 3:
  32.                 resultat = nombreA * nombreB;
  33.                 break;
  34.            case 4:
  35.                 resultat = nombreA / nombreB;
  36.                 break;
  37.            default:
  38.                 printf("Vous avez entrer un nombre incorrect. Veuillez recommencez\n\n" );
  39.                 break;
  40.     }
  41.     printf("Resultat : %lf\n", resultat);
  42.    
  43.     system("PAUSE" );
  44.     return 0;
  45. }


Edit (encore) : changé deux, trois truc.

Message cité 1 fois
Message édité par dwogsi le 31-08-2007 à 15:44:58

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1606616
Emmanuel D​elahaye
C is a sharp tool
Posté le 31-08-2007 à 08:18:52  profilanswer
 

dwogsi a écrit :


Bon vite fait comme ça, un peu mieux :


C'est pas terminé...


Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:20: warning: long int format, int arg (arg 2)
main.c:22: warning: long int format, int arg (arg 2)
main.c: At top level:
main.c:4: warning: unused parameter 'argc'
main.c:4: warning: unused parameter 'argv'
main.c: In function `main':
main.c:7: warning: 'resultat' might be used uninitialized in this function
Linking console executable: console.exe
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 5 warnings

Message cité 1 fois
Message édité par Emmanuel Delahaye le 31-08-2007 à 08:19:16

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1606891
dwogsi
Défaillance cérébrale...
Posté le 31-08-2007 à 15:46:44  profilanswer
 

Emmanuel Delahaye a écrit :


C'est pas terminé...


Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:20: warning: long int format, int arg (arg 2)
main.c:22: warning: long int format, int arg (arg 2)
main.c: At top level:
main.c:4: warning: unused parameter 'argc'
main.c:4: warning: unused parameter 'argv'
main.c: In function `main':
main.c:7: warning: 'resultat' might be used uninitialized in this function
Linking console executable: console.exe
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 5 warnings



 
J'ai pourtant précisé que j'avais fait ça vite fait, sans même contrôler ce que me disais le compilo.
Bon j'y ai encore modifié, 20,22,7 ça doit être réglé.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème de débutant :p.

 

Sujets relatifs
probleme dans un projet (niveau debutant)Problème de débutant !! Hou le nuuuuuuuuuuul !!
Problème bizarre avec GCC (pour débutant)Problème débutant
[Perl - Débutant]Probleme de comparaison de 2 chaines[OCAML] (Debutant) Construction d'une liste : Probleme
probleme de débutant - tracer un graph avec une macroDebutant - problème site IE / FF
Problème de débutant: erreur dès le debut "aucune action ne peut...[Débutant C] Problème aprés bonne compilation
Plus de sujets relatifs à : Problème de débutant :p.


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR