Se connecter / S'enregistrer
Votre question

Debutant en C et C++

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
1 Février 2007 23:36:31

Bonsoirs à tous, je vien juste de débuter dans la programatation et je commence bien evidement par le language C etC++, je commence tout juste a crée mes premier programme, mais pour le moment je commence avec des programme en console, car en fenètre c'est trop dure :D  . Donc j'ai voulut crée ma première mini calculette mais j'ai un problème, voici ma fonction :

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[])
{
long choix=0,nombre1=0,nombre2=0,resultat=0,reste=0;
printf("Bienvenue sur la calculette!!\n\n");
printf("Quelle operation voudrais tu faire?\n\n");
printf("***Operation***\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n\n");
printf("Votre choix ?");
scanf("%ld",&choix);

if ("%ld==1",choix)
{
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1+nombre2;
printf("Le resultat est %ld.\n\n",resultat);
break;
}

else if ("%ld==2",choix)
{
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1-nombre2;
printf("Le resultat est %ld.\n\n",resultat);
}

else if ("%ld==3",choix)
{
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1*nombre2;
printf("Le resultat est %ld.\n\n",resultat);
}

else if("%ld==4",choix)
{
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1/nombre2;
printf("Le resultat est %ld.\n\n",resultat);
reste=nombre1%nombre2;
printf("Ils reste %ld.\n\n",reste);
}


system("PAUSE");
return 0;
}

Voila donc normalement si je met comme choix 2, sa devrais me faire une soustraction mais sa me fait quand même une addition et pareil pour les autres si je fait une multiplication ou une division sa me fait toujours une addition. Je pense avoirs oublier quelque chose mais je vois pas quoi??

Autres pages sur : debutant

2 Février 2007 00:34:58

salut

je suis debutant aussi.
donc ce sera une réponse de debutant que je vais te faire.

Je pense que ce sont tes conditions de if,else if qui sont fausses.

A la place, j'orais écrit if (choix == 2) par exemple.

Mais encore une fois je suis debutant aussi.Donc rien de sur.

Par contre je te conseil de mettre un " filtre anti con" au cas ou quelqu'un entrerai 5 par exemple.(avec un dernier else)

cordialement

tom

Anonyme
2 Février 2007 01:21:37

Salut,
remplace tes
if ("%ld==x",choix)
par
if (choix==x)
et puis utilise un case, c'est plus adapté.
2 Février 2007 13:35:04

Merci à vous deux de m'avoirs répondut, j'ai donc modifier ma fonction en crée comme tu m'a dit tomtom30 un "filtre anti-con" :) 
Et comme Cart la dit j'ai utiliser switch au lieu de if. Voici ma fonction après la modifs :

int main(int argc, char *argv[])
{
long choix=0,nombre1=0,nombre2=0,resultat=0,reste=0;
printf("Bienvenue sur la calculette Farid!!\n\n");
printf("Quelle operation voudrais tu faire?\n\n");
printf("***Operation***\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n\n");
printf("Votre choix ?");
scanf("%ld",&choix);

switch (choix)
{
case 1:
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1+nombre2;
printf("Le resultat est %ld.\n\n",resultat);
break;

case 2:
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1-nombre2;
printf("Le resultat est %ld.\n\n",resultat);
break;

case 3:
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1*nombre2;
printf("Le resultat est %ld.\n\n",resultat);
break;

case 4:
printf("Donnez le premier nombre :");
scanf("%ld",&nombre1);
printf("Donnez le second nombres :");
scanf("%ld",&nombre2);
resultat=nombre1/nombre2;
printf("Le resultat est %ld.\n\n",resultat);
reste=nombre1%nombre2;
printf("Ils reste %ld.\n\n",reste);
break;
default:
printf("Tu n'a pas entrer le bon nombre, t'est un boufon\n\n");
break;

}


system("PAUSE");
return 0;
}


Je vais mettre un do... while , pour qu'a la fin ca recommence.

Merci encors à vous.^^
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS