Problèmes de débutant en C

bonjour a tous

je m’excuse auprès de tous ceux que je vais énerver, je les comprends un peu, mais il faut bien que je trouve une réponse à mon probleme.
voici un programme simple pour l’illustrer :

#include <stdio.h>

float a,b,c;
main()
{
printf("Entrez un nombre : ");
scanf("%d",&a);
printf("\n\nEntrez un second nombre : ");
scanf("%d",&b);
c= a / b;
printf("\n\n%d\n\n",c);
system("pause");
}

ce programme ne marche pas sur mon pc, en effet si j’entre 2 et 2, la réponse est 0. mais si je change l’état de c en int au lieu de float j’obtiens 1. Ma question est “pourquoi ?”.
Ai-je un probleme avec “float”, car lorsque je veux ecrire un nombre à virgule au cours de l’utilisation d’un programme, celui-ci bug (en ayant bien sûr pris soin d’introduire cette variable en “float”) ?

Merci de m’éclairer je ne vois vraiment pas. Si la réponse est évidente je comprendrais qu’on me dise de réfléchir.

la seule erreur que je vois vient de ton scanf().
il faut remplacer %d par %f pour que la fonction te renvoie un float.
meme chose pour le printf() pour ecrire un float.

%d : int
%f : float
%s: chaine de caractère

merci beaucoup

apprenant le C avec un bouquin, j’avais pas encore appris cela, et donc je me fondais sur les exemples que j’ai vu jusque là, où il n’y a que des int est donc des %d.

merci de ne pas m’avoir envoyer balader, meme si pour une faute comme celle la cela aurait été comprehensible :slight_smile:

t’inquiète pas, on ne vas pas t’envoyer balader si tu débute :wink:
on va soit

  • t’aiguiller pour que tu trouve ton erreur
  • te donner des pistes (liens)
  • te donner une partie de la solution

Juste un conseil : prend l’habitude de toujours vérifier ce que la fonction scanf retourne (= le nombre d’éléments qui ont bien été lu).

Essaye ton code en tapant azerty au lieu d’un nombre, tout cela dans une boucle :slight_smile: fun garanti :wink:

ce sent le plantage à plein nez. :smiley:

ça aussi ça doit planter (de mémoire)


int i = 2;
printf("test : %s",i);