[Besoin d'aide] Programmation C
Résolu
devildu06
Messages postés
62
Date d'inscription
Statut
Membre
Dernière intervention
-
devildu06 Messages postés 62 Date d'inscription Statut Membre Dernière intervention -
devildu06 Messages postés 62 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fait ce programme et j'ai droit a la fenetre "envoyer", "ne pas envoyer" mais je ne sais pas pourquoi
C'est censé etre une calculatrice ( Mon premier vrai programme :D)
Pouvez-vous m'aider en me disant ce qui cloche ?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("===MENU===\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n\n\n");
char choixOperation = 0;
long nombre_1 = 0;
long nombre_2 = 0;
long resultat = 0;
scanf("%ld", choixOperation);
switch(choixOperation)
{
case 1:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 + nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
case 2:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 - nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
case 3:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 * nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
case 4:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 + nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
default:
printf("Va t'acheter un cerveau, il fallait un taper un nombre entre 1 et 4 . Idiot!");
break;
system("PAUSE");
}
}
j'ai fait ce programme et j'ai droit a la fenetre "envoyer", "ne pas envoyer" mais je ne sais pas pourquoi
C'est censé etre une calculatrice ( Mon premier vrai programme :D)
Pouvez-vous m'aider en me disant ce qui cloche ?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
printf("===MENU===\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n\n\n");
char choixOperation = 0;
long nombre_1 = 0;
long nombre_2 = 0;
long resultat = 0;
scanf("%ld", choixOperation);
switch(choixOperation)
{
case 1:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 + nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
case 2:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 - nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
case 3:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 * nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
case 4:
printf("Indiquez le premier nombre\n");
scanf("%ld\n", nombre_1);
printf("Indiquez le second nombre\n");
scanf("%ld\n", nombre_2);
resultat = nombre_1 + nombre_2;
printf("Resultat : %ld\n", &resultat);
break;
default:
printf("Va t'acheter un cerveau, il fallait un taper un nombre entre 1 et 4 . Idiot!");
break;
system("PAUSE");
}
}
A voir également:
- [Besoin d'aide] Programmation C
- Application de programmation - Guide
- Programmation envoi sms - Guide
- Programmation vb - Télécharger - Langages
- Programmation binaire - Guide
- Programmation télécommande porte de garage brico depot - Forum Matériel & Système
7 réponses
Quand je lance le programme, j'ai la question "votre choix ?"
Ensuite je dois taper un nombre: j'en tape un puis la fenetre du rapport d'erreur apparait et je dois fermer le programme.
Ensuite je dois taper un nombre: j'en tape un puis la fenetre du rapport d'erreur apparait et je dois fermer le programme.
ah oui tu fais erreur: le & ne s'applique que dans la fonction scanf et non dans printf.
printf("Indiquez le premier nombre\n");
scanf("%ld\n", &nombre_1);
par exemple.
Rectifie et tu nous portes le rapport.
printf("Indiquez le premier nombre\n");
scanf("%ld\n", &nombre_1);
par exemple.
Rectifie et tu nous portes le rapport.
maintenant le probleme est que je dois taper deux nombres pour la variable nombre1 et que le resultat est toujours egal a 1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait que tu mets printf("Resultat : %ld\n", &resultat); tu demandes que ton programme affiche la réference (ou l'adresse du pointeur de ta variable resultat).
Pour avoir ton resultat exact tu dois enlever le & dans la fonction printf et donc avoir un truc du genre printf("Resultat : %ld\n", resultat);
Pour avoir ton resultat exact tu dois enlever le & dans la fonction printf et donc avoir un truc du genre printf("Resultat : %ld\n", resultat);
Salut,
Il y a plusieurs erreurs dans ton code.
scanf("%ld", choixOperation); //attention choixOperation est un char et en plus il faut donner son adresse.
Ce qui donne : scanf("%c",&choixOperation);
Dans ce cas, tu devras utiliser le code ascii (case '1' etc). Ou sinon tu peux déclarer choixOperation en int.
scanf("%ld\n", nombre_1);
Pas de \n dans le scanf, et il faut toujours donner l'adresse. Soit :
scanf("%ld", &nombre_1);
printf("Resultat : %ld\n", &resultat); Là, il ne faut pas mettre l'adresse.
Correction : printf("Resultat : %ld\n", resultat);
De plus, fais attention aux dépassement des valeurs. La somme de deux long peut dépasser LONG_MAX.
N'oublie pas le return 0; final.
Et enfin tu peux raccourcir largement ton code, en sortant du switch tout ce qui est commun dans les case.
Cdlt
Il y a plusieurs erreurs dans ton code.
scanf("%ld", choixOperation); //attention choixOperation est un char et en plus il faut donner son adresse.
Ce qui donne : scanf("%c",&choixOperation);
Dans ce cas, tu devras utiliser le code ascii (case '1' etc). Ou sinon tu peux déclarer choixOperation en int.
scanf("%ld\n", nombre_1);
Pas de \n dans le scanf, et il faut toujours donner l'adresse. Soit :
scanf("%ld", &nombre_1);
printf("Resultat : %ld\n", &resultat); Là, il ne faut pas mettre l'adresse.
Correction : printf("Resultat : %ld\n", resultat);
De plus, fais attention aux dépassement des valeurs. La somme de deux long peut dépasser LONG_MAX.
N'oublie pas le return 0; final.
Et enfin tu peux raccourcir largement ton code, en sortant du switch tout ce qui est commun dans les case.
Cdlt