Problème pour programme simple en C
Résolu
wid²
Messages postés
202
Date d'inscription
Statut
Membre
Dernière intervention
-
wid² Messages postés 202 Date d'inscription Statut Membre Dernière intervention -
wid² Messages postés 202 Date d'inscription Statut Membre Dernière intervention -
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...
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:
- Problème pour programme simple en C
- Iphone 14 simple - Guide
- Programme demarrage windows - Guide
- Simple pdf - Télécharger - PDF
- Mettre en veille un programme - Guide
- Simple ocr - Télécharger - Bureautique
5 réponses
tu as declarer tes variable comme des caracteres au lieu de double
essaye comme ça
essaye comme ça
double nb1, nb2, result, mod; // sélection des nombre
ben normalement, char, c'est pas pour les nombres entre -128 et 128 ???
mais je vais essayer avec long et double. merci !!!
mais je vais essayer avec long et double. merci !!!
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 ;)
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 ;)
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question