[ C ] erreur dans mon programme ?

erreur dans mon programme ? [ C ] - C - Programmation

Marsh Posté le 12-11-2006 à 20:49:02    

Bonjour :)  
 
language   = c  
ide           = dev c++
 
Donc quand je compile et execute mon code il y a une petite fenêtre qui m'indique qu'il y a une erreur pourquoi?
 
description: donc la console s'ouvre avec écrit arts plastique moi je tape un nombre puis entré et la il y a une erreur donc impossible de faire marcher mon prog. :??:  
 
le code :
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  double moyenne = 0, apl = 0, educationMusical = 0, eps = 0, francais = 0, hist_geo = 0, lv1 = 0, math = 0, p_c = 0, svt = 0, techno = 0, idd = 0;        
   
  printf("Arts Plastiques:" );
  scanf("%lf", &apl);
   
  printf("Education Musicale:" );
  scanf("%lf", &educationMusical);
   
  printf("Education Physique:" );
  scanf("%lf", &eps);
   
  printf("Français:" );
  scanf("%lf", &francais);
   
  printf("Histoire Geographie:" );
  scanf("%lf", &hist_geo);
   
  printf("Langue vivante 1:" );
  scanf("%lf", &lv1);
   
  printf("Mathématiques:" );
  scanf("%lf", &math);
   
  printf("Physique-Chimie:" );
  scanf("%lf", &p_c);
   
  printf("Science de la vie\n et de la terre:" );
  scanf("%lf", &svt);
   
  printf("Technologie:" );
  scanf("%lf", &techno);
   
  printf("I.D.D:" );
  scanf("%lf", &idd);  
   
  moyenne = apl + educationMusical + eps + francais + hist_geo + lv1 + math + p_c + svt + techno + idd;            
  moyenne = moyenne / 11;  
  printf("Votre moyenne: %lf", moyenne);
   
  system("PAUSE" );  
  return 0;
}
 
 
merci d'avance

Reply

Marsh Posté le 12-11-2006 à 20:49:02   

Reply

Marsh Posté le 12-11-2006 à 21:01:05    

Il ne faut pas utiliser scanf, c'est TREEEEEEEES difficile.
Utilise le couple fgets(buf, sizeof buf, stdin), suivi de val_f = strtod(buf, NULL).
Ceci dit, ton bug ne vient peut-être pas de là, mais déjà fais les modifs.

Reply

Marsh Posté le 12-11-2006 à 21:40:26    

comme ça je ne vois pas le problème non plus...
 
mais quand tu parles de problèmes, que ce passe t'il exactement?  
pour ce qui est de fgets et strtod ok, mais c'est pas le problème ici à mon avis.
C'est clair qu'il en est au base, qu'il comprenne donc ainsi ce que fait déjà scanf...

Reply

Marsh Posté le 12-11-2006 à 22:04:19    

-WHITE- a écrit :

Donc quand je compile et execute mon code il y a une petite fenêtre qui m'indique qu'il y a une erreur pourquoi?
 
description: donc la console s'ouvre avec écrit arts plastique moi je tape un nombre puis entré et la il y a une erreur donc impossible de faire marcher mon prog. :??:  


Ce code est correct.


Arts Plastiques:12
Education Musicale:13
Education Physique:14
Franþais:15
Histoire Geographie:16
Langue vivante 1:17
MathÚmatiques:18
Physique-Chimie:19
Science de la vie
 et de la terre:20
Technologie:1
I.D.D:2
Votre moyenne: 13.363636Appuyez sur une touche pour continuer...
 
Press ENTER to continue.


a part qu'il manque un \n...
 
Mais si on se trompe dans la saisie, c'est le drame :  

Arts Plastiques:a
Education Musicale:Education Physique:Franþais:Histoire Geographie:Langue vivant
e 1:MathÚmatiques:Physique-Chimie:Science de la vie
 et de la terre:Technologie:I.D.D:Votre moyenne: 0.000000Appuyez sur une touche
pour continuer...
 
Press ENTER to continue.


C'est pour ça qu'il faut suivre les bons conseils de mes petits camarades et ne pas utiliser scanf() si on est pas un expert en scanf() (il doit y en voir 20 dans le monde). Les autres comme toi et moi utilisent fgets() et la fonction de conversion qui va bien.
 


---------------
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/
Reply

Marsh Posté le 12-11-2006 à 22:51:35    

Autant je peux comprendre que tu dissuades les gens d'utiliser scanf, autant je ne comprends pas en quoi c'est réservé à quelques rares experts.

Reply

Marsh Posté le 12-11-2006 à 22:55:06    

nyrk a écrit :

Autant je peux comprendre que tu dissuades les gens d'utiliser scanf, autant je ne comprends pas en quoi c'est réservé à quelques rares experts.


Tu as déjà lu la doc de scanf() en entier ?


---------------
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/
Reply

Marsh Posté le 12-11-2006 à 23:00:09    

Non, mais en survolant la man page de scanf, je n'ai pas l'impression que ça soit plus compliqué que printf. Et puis on n'a peut-être pas besoin de connaître toutes les possibilités de scanf pour pouvoir l'utiliser (si on le fait bien), non ?

Reply

Marsh Posté le 13-11-2006 à 09:06:54    

+1 pourt fgets + sscanf

Reply

Marsh Posté le 13-11-2006 à 09:07:20    

pi ça manque de fflush tout ça

Reply

Marsh Posté le 13-11-2006 à 09:10:17    

nyrk a écrit :

Non, mais en survolant la man page de scanf, je n'ai pas l'impression que ça soit plus compliqué que printf. Et puis on n'a peut-être pas besoin de connaître toutes les possibilités de scanf pour pouvoir l'utiliser (si on le fait bien), non ?


Ben si, justement et c'est ça le problème. Un peu de lecture :  
 
http://mapage.noos.fr/emdel/notes.htm#saisie
 
et surtout
 
http://xrenault.developpez.com/tutoriels/c/scanf/


---------------
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/
Reply

Marsh Posté le 13-11-2006 à 09:10:17   

Reply

Marsh Posté le 13-11-2006 à 20:20:55    

Bonjour  
Donc aujourd'hui j'ai recompilé et executé mon code et tout marche donc je ne sais se qu'il  
s'était passé mais je vous remerci pour vos réponses. :)  

Reply

Marsh Posté le 13-11-2006 à 20:51:49    

Donc j'ai modifié mon code  et ça me le refait.
aidez moi svp :pt1cable:  :pt1cable:  :pt1cable:  
 
y a t-il des erreurs ?
 
 
#include <stdio.h>
#include <stdlib.h>
 
 
int main(int argc, char *argv[])
{
  printf("(____Moyenne general____)\n\n\n" );
   
  long choix = 0;
  printf("Faite vous latin ?\n1.oui\n2.non\nVotre reponse: " );
  scanf("%ld", choix);
   
  if (choix == 2)
  {
             
            double moyenne = 0, apl = 0, educationMusical = 0, eps = 0, francais = 0, hist_geo = 0, lv1 = 0, math = 0, p_c = 0, svt = 0, techno = 0, idd = 0;    
  printf("Arts Plastiques:\n" );
  scanf("%lf", &apl);  
   
  printf("\nEducation Musicale:\n" );
  scanf("%lf", &educationMusical);
   
  printf("\nEducation Physique:\n" );
  scanf("%lf", &eps);
   
  printf("\nFrancais:\n" );
  scanf("%lf", &francais);    
   
  printf("\nHistoire Geographie:\n" );
  scanf("%lf", &hist_geo);  
   
  printf("\nLangue vivante 1:\n" );
  scanf("%lf", &lv1);  
   
  printf("\nMathematiques:\n" );
  scanf("%lf", &math);  
   
  printf("\nPhysique-Chimie:\n" );
  scanf("%lf", &p_c);
   
  printf("\nScience de la vie\net de la terre:\n" );
  scanf("%lf", &svt);
   
  printf("\nTechnologie:\n" );
  scanf("%lf", &techno);
   
  printf("\nI.D.D:\n\n" );
  scanf("%lf", &idd);  
   
  moyenne = apl + educationMusical + eps + francais + hist_geo + lv1 + math + p_c + svt + techno + idd;            
  moyenne = moyenne / 11;  
  printf("Votre moyenne: %lf ", moyenne);  
     
  if (moyenne >= 15 )
  {
              printf("Tres bien\n\n\n\n" );
  }
   
  if (moyenne == 14)
  {
              printf("Bien\n\n\n\n" );
  }
   
  if (moyenne == 13)
  {
              printf("Assez bien\n\n\n\n" );
  }              
 
  if (moyenne <= 12)
  {
              printf("Pas bien\n\n\n\n" );
  }
   
   
  }      
   
  if (choix == 1)      
  {
                 double moyenne = 0, apl = 0, educationMusical = 0, eps = 0, francais = 0, hist_geo = 0, lv1 = 0, lat = 0, math = 0, p_c = 0, svt = 0, techno = 0, idd = 0;    
  printf("Arts Plastiques:\n" );
  scanf("%lf", &apl);  
   
  printf("\nEducation Musicale:\n" );
  scanf("%lf", &educationMusical);
   
  printf("\nEducation Physique:\n" );
  scanf("%lf", &eps);
   
  printf("\nFrancais:\n" );
  scanf("%lf", &francais);    
   
  printf("\nHistoire Geographie:\n" );
  scanf("%lf", &hist_geo);  
   
  printf("\nLangue vivante 1:\n" );
  scanf("%lf", &lv1);  
   
  printf("\nLatin\n" );
  scanf("%ld", lat);  
   
  printf("\nMathematiques:\n" );
  scanf("%lf", &math);  
   
  printf("\nPhysique-Chimie:\n" );
  scanf("%lf", &p_c);
   
  printf("\nScience de la vie\net de la terre:\n" );
  scanf("%lf", &svt);
   
  printf("\nTechnologie:\n" );
  scanf("%lf", &techno);
   
  printf("\nI.D.D:\n\n" );
  scanf("%lf", &idd);  
   
  moyenne = apl + educationMusical + eps + francais + hist_geo + lv1 + lat + math + p_c + svt + techno + idd;            
  moyenne = moyenne / 12;  
  printf("Votre moyenne: %lf ", moyenne);  
     
  if (moyenne >= 15 )
  {
              printf("Tres bien\n\n\n\n" );
  }
   
  if (moyenne == 14)
  {
              printf("Bien\n\n\n\n" );
  }
   
  if (moyenne == 13)
  {
              printf("Assez bien\n\n\n\n" );
  }              
 
  if (moyenne <= 12)
  {
              printf("Pas bien\n\n\n\n" );
  }
   
   
  }            
   
 
  system("PAUSE" );  
  return 0;
}

Reply

Marsh Posté le 13-11-2006 à 21:00:47    

-WHITE- a écrit :

Donc j'ai modifié mon code  et ça me le refait.
aidez moi svp :pt1cable:  :pt1cable:  :pt1cable:  
 
y a t-il des erreurs ?
 
#include <stdio.h>


Y'a pas de balises codes. Il faut lire les règles du forum...
 
Pour le reste, y'a des bugs :  
 

Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums2\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:11: warning: format argument is not a pointer (arg 2)
main.c:99: warning: format argument is not a pointer (arg 2)
main.c: At top level:
main.c:5: warning: unused parameter 'argc'
main.c:5: warning: unused parameter 'argv'
Linking console executable: C:\dev\forums2\console.exe
Process terminated with status 0 (0 minutes, 1 seconds)
0 errors, 4 warnings


Message édité par Emmanuel Delahaye le 13-11-2006 à 21:02:04

---------------
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/
Reply

Marsh Posté le 15-11-2006 à 09:15:14    

ça fait plaisir de voir que tu as lu tous les conseils qu'on t'as donné ...

Reply

Marsh Posté le 16-11-2006 à 08:51:04    

desole taz mais comme je suis débutant je n'ai pas compris grand chose.
 
sinon ça mache toujours pas. :pt1cable:  
aidez moi a corriger mon code svp

Reply

Marsh Posté le 16-11-2006 à 09:38:37    

bah tu reprends le topic depuis le début et tu lis attentivement chaque réponse.

Reply

Marsh Posté le 16-11-2006 à 09:51:16    

[troll du jour] Arreter d'utiliser du c pour faire le boulot d'un vulgaire tableur[/troll du jour]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed