Problème pour programme simple en C

Résolu/Fermé
wid² Messages postés 202 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 12 juin 2012 - 6 oct. 2008 à 21:11
wid² Messages postés 202 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 12 juin 2012 - 7 oct. 2008 à 07:42
Bonjour à tous !!!

alors voilà, je programme sous eclipse, et compile avec GCC.

je suis completement novice en la matière, je m'entrainais donc à faire un programme relativement simple (ci-dessous), cependant il ne marche pas, et je ne comprend pas pourquoi...

le programme :

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

// création d'un programme qui divise 2 nombres et qui indique le reste :
int main ()
{
char nb1, nb2, result, mod; // sélection des nombre
printf("\n\tnous allons faire une division\n\n"
"\trentrer le nombre a diviser (<128)\n");
scanf("%ld", &nb1);
printf("\n\nrentrer maintenant le diviseur\n");
scanf("%ld", &nb2);

system("pause");

result = nb1/nb2; // calcul
mod = nb1%nb2;

printf("\n\n\t %ld / %ld = %ld\n\til reste %ld \n\n", nb1, nb2, result, mod); // affichage
system("pause");
return 0;
}



quand j'exécute, il ne veut pas me prendre mon premier chiffre que je tappe, et qui devrait rentrer dans nb1
à la place, il me met cette valeur à 0 tout le temps...
A voir également:

5 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
6 oct. 2008 à 21:14
tu as declarer tes variable comme des caracteres au lieu de double
essaye comme ça
double nb1, nb2, result, mod; // sélection des nombre
0
wid² Messages postés 202 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 12 juin 2012 18
6 oct. 2008 à 21:22
ben normalement, char, c'est pas pour les nombres entre -128 et 128 ???

mais je vais essayer avec long et double. merci !!!
0
wid² Messages postés 202 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 12 juin 2012 18
6 oct. 2008 à 21:28
ben alors là !!!

double, ça marche pas, même si je met scanf("%lf") au lieu de %ld

alors que avec long ça marche du premier coup !!!

je tiens à préciser que c'est que la première valeur qu'il voulait pas me prendre... la deuxième, ça marchait correctement... donc ce n'était pour moi pas un problème de type de valeur...

enfin bref, avec long ça marche, d'où ma nouvelle question : POURQUOI ??? (désolé d'être insistant, mais étant débutant, j'aimerais juste savoir pour l'avenir...)

merci des réponses, et merci mype de m'avoir mis sur la voie ;)
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
6 oct. 2008 à 23:19
ben non le char est utilisé pour les caracteres...
dsl pour le double j'avais mal lu ton probleme en effet avec le double il fera pas la division entiere mais decimal donc t'auras pas le reste donc il faut utiliser un type entier comme long ou int
0

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

Posez votre question
wid² Messages postés 202 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 12 juin 2012 18
7 oct. 2008 à 07:42
ok ok ben merci beaucoup !!!
0