Problème programmation en c code blocks

Résolu
Bonjour,
je suis débutant en programmation en langage c, je voudrais créer une mini calculatrice sur pc, mais voilà j'ai un problème j'utilise code blocks.
voici mon code :

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

int main()
{
int modedeoperation = 0;
printf("bienvenue\npour additionner tapez 1\npour soustraire tapez 2\n\n");
scanf("%d",modedeoperation);

if(modedeoperation ==1)
{
int nombre1 =0;
int nombre2 =0;
int resultat =0;
printf("\ntapez le 1er nombre\n");
scanf("%d",nombre1);
printf("\ntapez le 2eme nombre\n");
scanf("%d",nombre2);
resultat = nombre1 + nombre2;
printf("\n%d + %d = %d",nombre1,nombre2,resultat);
}
if(modedeoperation ==2)
{

int nombre3 =0;
int nombre4 =0;
int resultat2 =0;
printf("\ntapez le 1er nombre\n");
scanf("%d",nombre3);
printf("\ntapez le 2eme nombre\n");
scanf("%d",nombre4);
resultat2 = nombre3 + nombre4;
printf("\n%d - %d = %d",nombre3,nombre4,resultat2);
return 0;

}
}

Et quand je clique sur build and run ça me fais ça:

Bienvenue
pour additionner tapez 1
pour soustraire tapez 2

Là je tape 1 et windows me dit que calculette.exe a cessé de fonctionner.

Merci d'avance.

4 réponses

  1. Modérateur
    Erreur de débutant : il faut mettre des & à tes scanf :

    int entier;
    scanf("%d",&entier);
    1. Modérateur
      Et pour faire une soustraction ce serait mieux d'utiliser le signe -

      resultat2 = nombre3 - nombre4;
  2. Je connais pas le "c" mais tu as oublier le return 0 dans le premier if
    1. Normalement ce n'est pas obligatoire
      1. Modérateur
        Ce serait quand même mieux de le mettre systématiquement (à la fin du main pas dans le if)