Probleme pour debutant en language C

kakashi-sensei -  
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'apprends a programmer , je suis dans le cour des headers et j'ai écrit ce petit code
=============================
#include <stdio.h>
#include <stdlib.h>
#include "ledouble.h"
#include "triple.h"
int main(int argc, char *argv[])
{
int choice=0 , number=0;
printf(" veuillez chosir votre operation : \n");
printf("1. Double : \n");
printf("2. Triple : \n");
do
{

scanf("%ld",&choice);
printf(" veuiller entrer votre nombre : ");
scanf("%ld",&number);
if (choice =1)
printf(" votre resultat est : %d\n", ledouble(number));
else if (choice =2)
printf(" votre resultat est : %d\n", triple(number));
else
printf("votre chiffre est incorrect , veuillez entrer un chiffre correcte :");
}while ( choice !=1 || choice !=2);

system("PAUSE");
return 0;
}
===================================
avec les autres fichiers sources contenant la fonction ledouble et la fonction triple
alors voilà le problème , au moment ou ça me demande de taper mon choix , quand je tape 2 ça ne lance pas la fonction triple , mais ça double ma variable :s , je voudrait savoir ou est l'erreur svp
A voir également:

7 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Une erreur classique lorsqu'on débute : l'opérateur d'égalité.
En C, l'opérateur d'égalité est le double égal (==) et non le simple égal (opérateur d'affectation).

if (choice =1)
Ici cette condition est toujours vraie car choice sera affecté à 1 (simple opérateur d'affectation) et renverra 1 (valeur assimilée à vraie).
Il faut mettre : if(choice==1)

Je te laisse le soin de corriger dans les else if.

Cdlt
1
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Il nous faudrait tout le code source. C'est peut être par exemple une erreur de copier coller dans l'implémentation de la fonction "letriple".

Bonne chance
0
kakashi-sensei
 
voila
ledouble.c
-------------------
#include <stdio.h>
#include <stdlib.h>

int ledouble(int numero)
{

return numero *2;
system("PAUSE");
return 0;
}
--------------------
ledouble.h
--------------------
int ledouble(int numero);
--------------------
triple.c
--------------------
#include <stdio.h>
#include <stdlib.h>

int triple(int numero)
{

return numero * 3;
system("PAUSE");
return 0;
}
------------------
triple.h
------------------
int triple(int numero);
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Rah quel œil j'avais même pas vu. BIen vu fiddy. Le pire c'est que normalement son compilateur a dû lui mettre un warning qu'il a allégrement omis.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kakashi-sensei
 
non mon compilateur ne m'a pas mis de warning , ça s'est lancé correctement l'erreur était juste dans le fonctionnement du programme.
merci ça a bien marché , quel erreur j'ai commis xd
0
Utilisateur anonyme
 
Erreur typique comme le &&..
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Je ne sais pas quel compilateur tu utilises mais tu dois pouvoir régler le niveau de warning dans ton IDE ou passer des options au compilateur. Si par exemple c'est un compilateur gcc ou g++ (par exemple si tu utilises code::blocks ou dev-cpp) les options magiques sont -W -Wall.

Bonne chance
0