erreur dans mon programme ? [ C ] - C - Programmation
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.
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...
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? |
Ce code est correct.
|
a part qu'il manque un \n...
Mais si on se trompe dans la saisie, c'est le drame :
Arts Plastiques:a |
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.
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.
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 ?
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 ?
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/
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.
Marsh Posté le 13-11-2006 à 20:51:49
Donc j'ai modifié mon code et ça me le refait.
aidez moi svp
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;
}
Marsh Posté le 13-11-2006 à 21:00:47
-WHITE- a écrit : Donc j'ai modifié mon code et ça me le refait. |
Y'a pas de balises codes. Il faut lire les règles du forum...
Pour le reste, y'a des bugs :
Project : Forums |
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é ...
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.
aidez moi a corriger mon code svp
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.
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]
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