conditions C
Dernière réponse : dans Programmation
bjr je viens juste de commencer la lecture du tutoriel de C sur siteduzero
j'ai voulu appliqué ce qui est dans le tuto sur les conditions voila le code
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("ahlane sat labass 3lik?\n");
printf("cmb as tu eu en maths ? ");
double note1=20;
scanf("%ld", ¬e1);
printf("Ah ! tu as donc eu %ld /20 en maths !\n\n", note1);
printf("cmb as tu eu en PC ? ");
double note2=20, resultat=20;
scanf("%ld", ¬e2);
printf("Ah ! tu as donc eu %ld /20 en PC!\n\n", note2);
resultat=(note1+note2)/2;
printf ("tu as eu une moyenne de %Id\n" , resultat);
if (resultat >= 17)
{
printf("mais t'es vraiment tres fort !\n");
}
else
{
printf ("hhaha\n");
}
system("PAUSE");
return 0;
}
mais il ne tient pas compte des conditions et affiche juste le printf écrit dans if si vous pouvez m'aider je serai très reconnaissant car sinon je continuerez pas la lecture
merci d'avance
j'ai voulu appliqué ce qui est dans le tuto sur les conditions voila le code
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("ahlane sat labass 3lik?\n");
printf("cmb as tu eu en maths ? ");
double note1=20;
scanf("%ld", ¬e1);
printf("Ah ! tu as donc eu %ld /20 en maths !\n\n", note1);
printf("cmb as tu eu en PC ? ");
double note2=20, resultat=20;
scanf("%ld", ¬e2);
printf("Ah ! tu as donc eu %ld /20 en PC!\n\n", note2);
resultat=(note1+note2)/2;
printf ("tu as eu une moyenne de %Id\n" , resultat);
if (resultat >= 17)
{
printf("mais t'es vraiment tres fort !\n");
}
else
{
printf ("hhaha\n");
}
system("PAUSE");
return 0;
}
mais il ne tient pas compte des conditions et affiche juste le printf écrit dans if si vous pouvez m'aider je serai très reconnaissant car sinon je continuerez pas la lecture
merci d'avance
Autres pages sur : conditions
Lassé par la pub ? Créez un compte
Salut
Il y a plusieurs petites choses à changer. Tout d'abord en c on doit déclarer ses variables au début du code. Ensuite tu initialises tes variables à 20 pour ensuites leur donner la valeur que l'utilisateur veux donc ca sert à rien ^^, ensuite tu dit que si le resultat est plus petit 17 alors tu affiches "Tu es tr....." sinon tu affiches "HAAAAhaha...". Et pour finir la ou était l'erreur, tu as des variables de nombres decimal mais tu y entre et affiche un nombre entier.
voila le code qui fonctionne
Il y a juste une chose dont je suis pas sur c'est pour la déclaration des variables en début du code, mais si CRicky repasse il me confirmera ou pas
Il y a plusieurs petites choses à changer. Tout d'abord en c on doit déclarer ses variables au début du code. Ensuite tu initialises tes variables à 20 pour ensuites leur donner la valeur que l'utilisateur veux donc ca sert à rien ^^, ensuite tu dit que si le resultat est plus petit 17 alors tu affiches "Tu es tr....." sinon tu affiches "HAAAAhaha...". Et pour finir la ou était l'erreur, tu as des variables de nombres decimal mais tu y entre et affiche un nombre entier.
voila le code qui fonctionne
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
double note1,note2,resultat;
printf("cmb as tu eu en maths ? " );
scanf("%lf", ¬e1);
printf("Ah ! tu as donc eu %lf /20 en maths !\n\n", note1);
printf("cmb as tu eu en PC ? " );
scanf("%lf", ¬e2);
printf("Ah ! tu as donc eu %lf /20 en PC!\n\n", note2);
resultat=(note1+note2)/2;
printf ("tu as eu une moyenne de %lf\n" , resultat);
if (resultat >= 17)
{
printf("mais t'es vraiment tres fort !\n" );
}
else
{
printf ("hhaha\n" );
}
system("PAUSE" );
return 0;
}
Il y a juste une chose dont je suis pas sur c'est pour la déclaration des variables en début du code, mais si CRicky repasse il me confirmera ou pas
Pour le C, oui, il faut déclarer une variable en début de bloc { (qu'on peut créer n'importe où, mais le code devient rapidement illisible
).
Si ça compile avec des variables initialisées n'importe où après une instruction dans un même bloc, c'est qu'en fait ça compile en C++.
Désolé zikzak, par "traces", je voulais dire, ce qui s'affiche à l'écran. Tu mets des printf partout, montre-nous ce que ça écrit vraiment
(je ne teste aucun programme)
Sinon, le problème était effectivement le %ld (lecture d'un entier long) à remplacer par %lf (lecture d'un nombre à virgule double). Je ne l'avais pas remarqué à la première lecture.
Dernière chose, quand tu dis "ça marche pas", indique ce qui ne marche pas pour qu'on puisse t'aider...
).Si ça compile avec des variables initialisées n'importe où après une instruction dans un même bloc, c'est qu'en fait ça compile en C++.
Désolé zikzak, par "traces", je voulais dire, ce qui s'affiche à l'écran. Tu mets des printf partout, montre-nous ce que ça écrit vraiment
(je ne teste aucun programme)Sinon, le problème était effectivement le %ld (lecture d'un entier long) à remplacer par %lf (lecture d'un nombre à virgule double). Je ne l'avais pas remarqué à la première lecture.
Dernière chose, quand tu dis "ça marche pas", indique ce qui ne marche pas pour qu'on puisse t'aider...
merci pour les reponces en fait dans le code de quarty les variables sont au debut mais voila ce qu'on m'affiche avec sonj code
1 E:\ziko\c\main.c syntax error before numeric constant
1 E:\ziko\c\main.c syntax error at '#' token
2 E:\ziko\c\main.c syntax error at '#' token
PS: je suis encors avec le cours C pas encors passé a C++
1 E:\ziko\c\main.c syntax error before numeric constant
1 E:\ziko\c\main.c syntax error at '#' token
2 E:\ziko\c\main.c syntax error at '#' token
PS: je suis encors avec le cours C pas encors passé a C++
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :