Demande correction code en C (très simple)
Fermé
thuthur76
Messages postés
196
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
26 juillet 2013
-
Modifié par thuthur76 le 5/09/2011 à 19:35
thuthur76 Messages postés 196 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 26 juillet 2013 - 9 sept. 2011 à 18:28
thuthur76 Messages postés 196 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 26 juillet 2013 - 9 sept. 2011 à 18:28
A voir également:
- Demande correction code en C (très simple)
- Le code ascii en informatique - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
8 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
5 sept. 2011 à 20:00
5 sept. 2011 à 20:00
Bonjour,
Voici une correction, j'ai graissé les endroits où j'ai mis des modifications.
Pour info, la prochaine fois que vous postez un code, utilisez la balise "code" (à droite du bouton souligné". Cela permettra de garder l'indentation.
Au niveau des erreurs importantes, dans le printf, il ne faut pas mettre l'adresse de la variable (&nombre1), mais bien la valeur (nombre1).
Dans les if, c'est un double égal qu'il faut mettre pour comparer : if (calculs==1).
Pas de point virgule après un if, sinon ça sert à rien. Retenez qu'après un if si on ne met pas d'accolades, seule la première instruction suivante sera prise en compte dans le if. Pour que toutes les instructions suivantes soient conditionnées, il faut les encadrer par des accolades.
Prochaine étape pour vous : les fonctions. Cela facilite la lecture et le débogage ;-))).
Vous avez le siteduzero qui propose des tuto pour le C.
Bon apprentissage :
Voici une correction, j'ai graissé les endroits où j'ai mis des modifications.
Pour info, la prochaine fois que vous postez un code, utilisez la balise "code" (à droite du bouton souligné". Cela permettra de garder l'indentation.
Au niveau des erreurs importantes, dans le printf, il ne faut pas mettre l'adresse de la variable (&nombre1), mais bien la valeur (nombre1).
Dans les if, c'est un double égal qu'il faut mettre pour comparer : if (calculs==1).
Pas de point virgule après un if, sinon ça sert à rien. Retenez qu'après un if si on ne met pas d'accolades, seule la première instruction suivante sera prise en compte dans le if. Pour que toutes les instructions suivantes soient conditionnées, il faut les encadrer par des accolades.
Prochaine étape pour vous : les fonctions. Cela facilite la lecture et le débogage ;-))).
Vous avez le siteduzero qui propose des tuto pour le C.
Bon apprentissage :
#include <stdio.h> #include <stdlib.h> int main(void) { int addition = 0; int nombre1 = 0; int nombre2 = 0; int soustraction = 0; int multiplication = 0; int calculs = 0; printf("Bonjour, je vais vous présenter ma première calculatrice programmée en C x), oui ça pue, nan je n'en n'ai pas honte >.< !\n Pour commencer vous allez choisir le type d'opération à faire (choisir 1. / 2. / 3. selon votre choix):"); printf("\n1. Addition\n"); printf("2. Soustraction\n"); printf("3. Multiplicatio\n"); scanf("%d", &calculs); if (calculs == 1) { printf("Vous avez choisis l'addition, quel est le premier chiffre/nombre à additioner ?"); scanf("%d", &nombre1); printf("Choissez désormais le second chiffre à additionner avec %d.",nombre1); scanf("%d", &nombre2); addition = nombre1 + nombre2; printf("Voici le résultat de votre calcul :) ! (trop cool ma calculette pas vrai x) ) :\n %d + %d = %d", nombre1, nombre2, addition); } else if (calculs == 2) { printf("Vous avez choisis la soustraction, quel est le chiffre/nombre auquel vous voulez soustraire le second nombre (qu'on définira après) ?"); scanf("%d", &nombre1); printf("Choissez désormais le chiffre/nombre qui sera soustrait à %d.", &nombre1); scanf("%d", &nombre2); soustraction = nombre1 - nombre2; printf("Voici le résultat de votre calcul :) ! (trop cool ma calculette pas vrai x) ) :\n %d - %d = %d", &nombre1, &nombre2, &soustraction); } else { printf("\nBiiip de codage de biiiip qui marche pas !!!!...\n \n BIIIIIIIIIP !") </gras>}</gras> return 0; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 sept. 2011 à 20:03
5 sept. 2011 à 20:03
Salut,
printf("Choissez désormais le second chiffre à additionner avec %d.", &nombre1);
Commence par corriger la variable dans printf.
%d demande un int et tu as mis un int*
Ce qui donne
printf("Choissez désormais le second chiffre à additionner avec %d.", &nombre1);
Commence par corriger la variable dans printf.
%d demande un int et tu as mis un int*
Ce qui donne
printf("Choissez désormais le second chiffre à additionner avec %d.", nombre1);
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 sept. 2011 à 20:05
5 sept. 2011 à 20:05
Re,
if (calculs = 1);
Le signe = c'est l'opérateur d'affectation, pour tester l'égalité il faut utiliser ==
Ensuite si tu mets ; alors c'est la fin d'instruction, if ne traite rien en fait.
Dans le contexte que tu as écris ça sera toujours vrai puisque l'opération d'affectation réussi sans problème.
if (calculs = 1);
Le signe = c'est l'opérateur d'affectation, pour tester l'égalité il faut utiliser ==
Ensuite si tu mets ; alors c'est la fin d'instruction, if ne traite rien en fait.
Dans le contexte que tu as écris ça sera toujours vrai puisque l'opération d'affectation réussi sans problème.
1fort-matique
Messages postés
454
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
30 novembre 2011
96
5 sept. 2011 à 20:09
5 sept. 2011 à 20:09
Salut voila un code que j'ai fais avec un pote , ton code contient pas mal d'erreur mais c'est le début ;)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int nombre = 0, rejouer = 0;
double resultat = 0;
double resultat1 = 0, resultat2 = 0; double resultat5 = 0;
do
{
printf("\nCalcul actrice ;)\n");
printf("\nVeuillez choisir l'operations que vous souhaitez utiliser\n");
printf("\n + - / * \n");
printf("|----------|\n"),
printf("\n1.Addition (+)\n");
printf("\n2.Soustraction (-)\n");
printf("\n3.Divison (/)\n");
printf("\n4.Multiplication (*)\n\n");
printf("En attente de la reponse...\n\n");
printf("Entrez le chiffre correspondant a votre choix\n\n");
scanf("%d", &nombre);
switch (nombre)
{
case 1:
printf("\n1.Vous avez choisis l'addition (+)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 + resultat2;
printf ("\n%f + %f = %f\n", resultat1, resultat2, resultat);
break;
case 2:
printf("\n2.Vous avez choisis la soustraction (-)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 - resultat2;
printf ("\n%f - %f = %f\n", resultat1, resultat2, resultat);
break;
case 3:
printf("\n3.Vous avez choisis la division (/)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 / resultat2;
printf ("\n%f / %f = %f\n", resultat1, resultat2, resultat);
break;
case 4:
printf("\n4.Vous avez choisis la multiplication (*)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 * resultat2;
printf ("\n%f * %f = %f\n", resultat1, resultat2, resultat);
break;
default:
printf("\nErreur veuillez reformuler une solution correcte");
scanf("%lf" ,&resultat5);
break;
}
printf("\n\nVoulez vous recommencer une operations ?\n\n");
printf(" \n\n0 : non \n\n");
printf(" \n\n1 : oui \n\n");
scanf("%d" , &rejouer);
}while (rejouer == 1);
return 0;
}
//mettez un commentaire
#include <stdio.h>
#include <stdlib.h>
int main()
{
int nombre = 0, rejouer = 0;
double resultat = 0;
double resultat1 = 0, resultat2 = 0; double resultat5 = 0;
do
{
printf("\nCalcul actrice ;)\n");
printf("\nVeuillez choisir l'operations que vous souhaitez utiliser\n");
printf("\n + - / * \n");
printf("|----------|\n"),
printf("\n1.Addition (+)\n");
printf("\n2.Soustraction (-)\n");
printf("\n3.Divison (/)\n");
printf("\n4.Multiplication (*)\n\n");
printf("En attente de la reponse...\n\n");
printf("Entrez le chiffre correspondant a votre choix\n\n");
scanf("%d", &nombre);
switch (nombre)
{
case 1:
printf("\n1.Vous avez choisis l'addition (+)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 + resultat2;
printf ("\n%f + %f = %f\n", resultat1, resultat2, resultat);
break;
case 2:
printf("\n2.Vous avez choisis la soustraction (-)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 - resultat2;
printf ("\n%f - %f = %f\n", resultat1, resultat2, resultat);
break;
case 3:
printf("\n3.Vous avez choisis la division (/)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 / resultat2;
printf ("\n%f / %f = %f\n", resultat1, resultat2, resultat);
break;
case 4:
printf("\n4.Vous avez choisis la multiplication (*)\n");
printf("\nVeuillez entrer le premier chiffre a calculer\n\n");
scanf("%lf" ,&resultat1);
printf("\nVeuillez entrer le deuxieme chiffre a calculer\n\n");
scanf("%lf", &resultat2);
resultat = resultat1 * resultat2;
printf ("\n%f * %f = %f\n", resultat1, resultat2, resultat);
break;
default:
printf("\nErreur veuillez reformuler une solution correcte");
scanf("%lf" ,&resultat5);
break;
}
printf("\n\nVoulez vous recommencer une operations ?\n\n");
printf(" \n\n0 : non \n\n");
printf(" \n\n1 : oui \n\n");
scanf("%d" , &rejouer);
}while (rejouer == 1);
return 0;
}
//mettez un commentaire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
thuthur76
Messages postés
196
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
26 juillet 2013
22
5 sept. 2011 à 21:25
5 sept. 2011 à 21:25
Merci à tous pour vos réponses :) ! J'ai compris pas mal de chose au niveau du C :) ! Sincèrement c'est très sympa de votre part et je vous en remercie ;) ! Je vais corriger tout ça manuellement pour bien retenir mes erreurs ! C'est peut-être beaucoup demander, mais quelqu'un ici aurait skype ou un logiciel de messagerie instantanée ? Juste dans le cas ou j'aurai besoin d'un peu d'aide (je ne vais pas vous harceler :p ) !
Merci d'avance ;) !
Bye
Merci d'avance ;) !
Bye
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 5/09/2011 à 21:36
Modifié par lami20j le 5/09/2011 à 21:36
Re,
mais quelqu'un ici aurait skype ou un logiciel de messagerie instantanée ? Juste dans le cas ou j'aurai besoin d'un peu d'aide (je ne vais pas vous harceler :p ) !
Le but de forum c'est justement la possibilité de partager les questions/réponses/solutions.
Si tu as besoin d'aide il suffit de montrer ce que tu fais et demander de l'aide.
Tu as plus de chance d'avoir des réponses que si tu le faisait sur skype ou une autre MI.
La preuve sont les réponses que tu as reçu ici assez rapidement ;-)
Merci et bonne continuation.
mais quelqu'un ici aurait skype ou un logiciel de messagerie instantanée ? Juste dans le cas ou j'aurai besoin d'un peu d'aide (je ne vais pas vous harceler :p ) !
Le but de forum c'est justement la possibilité de partager les questions/réponses/solutions.
Si tu as besoin d'aide il suffit de montrer ce que tu fais et demander de l'aide.
Tu as plus de chance d'avoir des réponses que si tu le faisait sur skype ou une autre MI.
La preuve sont les réponses que tu as reçu ici assez rapidement ;-)
Merci et bonne continuation.
thuthur76
Messages postés
196
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
26 juillet 2013
22
5 sept. 2011 à 21:35
5 sept. 2011 à 21:35
Merci pour ton code, mais tu sais, j'ai déjà une jolie calculatrice intégrée à windows :p ! Moi c'était vraiment le fait de trouver mes fautes, pour ne pas les répétés par la suite dans un autre programme :s ! Donc un autre programme tout fait m'aide à moitié ^^ Mais je l'ai quand même regarder pour voir comment tu le construit :) !
Merci
Merci
1fort-matique
Messages postés
454
Date d'inscription
jeudi 9 juin 2011
Statut
Membre
Dernière intervention
30 novembre 2011
96
6 sept. 2011 à 18:52
6 sept. 2011 à 18:52
Oui ^^ mais j'avais pas d'idée de programme , en faite moi j'aurais vu ce code j'aurai comparer au miens et j'aurai regarder sur le site du zéro ce que je ne connaissais pas ( do while = boucle ) switch pour remplacer le if else etc..
thuthur76
Messages postés
196
Date d'inscription
mercredi 10 décembre 2008
Statut
Membre
Dernière intervention
26 juillet 2013
22
Modifié par thuthur76 le 9/09/2011 à 18:43
Modifié par thuthur76 le 9/09/2011 à 18:43
Salut à tous :) !
Je viens de me remettre un peu au cour (switch) et voici ce que j'ai fait en une p'tite heure (dont 30minutes pour m'apercevoir que j'avais oublié un T à resultat !!!!).
J'avance pas des masses, mais je m'aperçois que je fais toujours pas mal de fautes très... basique >.< (il est juste horrible le point virgule --') Et que je pense mieux de faire des exercices de gros débutant, pour me familiarisé un peu plus avec le code :) !
J'aimerai savoir si je peux faire plus simple, et si possible ne pas me dévoilé le tout maintenant, juste me donner deux-trois astuces pour que je découvre par moi même ;) !
Merci d'avance, voici le code :
Bye :) !
Je viens de me remettre un peu au cour (switch) et voici ce que j'ai fait en une p'tite heure (dont 30minutes pour m'apercevoir que j'avais oublié un T à resultat !!!!).
J'avance pas des masses, mais je m'aperçois que je fais toujours pas mal de fautes très... basique >.< (il est juste horrible le point virgule --') Et que je pense mieux de faire des exercices de gros débutant, pour me familiarisé un peu plus avec le code :) !
J'aimerai savoir si je peux faire plus simple, et si possible ne pas me dévoilé le tout maintenant, juste me donner deux-trois astuces pour que je découvre par moi même ;) !
Merci d'avance, voici le code :
#include <stdio.h> #include <stdlib.h> int main() { int forwhile = 0; while (forwhile==0) { int nombre1 = 0; int nombre2 = 0; int resultat = 0; int type_op = 0; printf("\n- Choisissez le type d'operation que vous souhaitez executer: -\n\n"); //On demande le type de l'opération (1=addition 2= soustraction etc...). printf("1. -Addition-"); printf("\n2. -Soustraction-\n"); printf("3. -Multiplication-\n"); printf("4. -Division-\n\n"); scanf("%d", &type_op); //On enregistre dans la variable 'type_op' ce que la personne va écrire. printf("\n\nChoisissez le premier chiffre/nombre de l'operation.\n\n"); //On demande le premier chiffre ou nombre de l'opération. scanf("%d", &nombre1); //On enregistre dans la variable 'nombre1' ce que la personne va écrire. printf("\n\nChoisissez le second chiffre/nombre de l'operation.\n\n"); //On demande le second chiffre ou nombre de l'opération. scanf("%d", &nombre2); //On enregistre dans la variable 'nombre2' ce que la personne va écrire. printf("\n\n"); switch (type_op) { case 1: resultat = nombre1 + nombre2; printf("Voici le resultat de votre operation:\n%d+%d=%d\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat); break; case 2: resultat = nombre1 - nombre2; printf("Voici le resultat de votre operation:\n%d-%d=%d\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat); break; case 3: resultat = nombre1 * nombre2; printf("Voici le resultat de votre operation:\n%dx%d=%d\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat); break; case 4: resultat = nombre1 / nombre2; printf("Voici le resultat de votre operation:\n%d:%d=%d\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat); break; default: printf("Et bah tu vois, j'ai meme prevu un message pour les p'tit rigolos dans ton genre ;) !"); break; } } return 0; }
Bye :) !