Probleme de code en C
Résolu
omaflak
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
omaflak Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
omaflak Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai fait une petite fonction en C qui a pour but de me donner le nombre de chiffre qu'il y a dans un nombre. Le probleme c'est que quel que soit le chiffre elle me renvoie la meme valeur : 10 :(
Je suis debutant en C est ce que quelqu'un pourrait m'aider ?
voila ma fonction :
int len(int nombre)
{
int i=0;
while (nombre>1)
{
nombre=nombre/10;
i++;
}
return i;
}
Merci d'avance :)
Je suis debutant en C est ce que quelqu'un pourrait m'aider ?
voila ma fonction :
int len(int nombre)
{
int i=0;
while (nombre>1)
{
nombre=nombre/10;
i++;
}
return i;
}
Merci d'avance :)
A voir également:
- Probleme de code en C
- Code ascii - Guide
- Code de déverrouillage oublié - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
9 réponses
Bonjour,
C'est cette parti qui plante,
La variable nombre est un entier, tant que nombre n'est pas égal a 10 il n'arrivera pas a avoir nombre = 1
Tu divise un entier par 10.... Le résultat sera donc un entier
nombre=nombre/10;
Exemple, 10 / 3 = 3 pour le langage C
et 3/10 = 0 pour le langage C
essai d'utiliser des floats à la place et je pense que tu n'aura plus de problème
Source : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14337-une-bete-de-calcul#ss_part_1
Essai cette méthode
J'espère que ça marchera mais normalement oui....
C'est cette parti qui plante,
La variable nombre est un entier, tant que nombre n'est pas égal a 10 il n'arrivera pas a avoir nombre = 1
Tu divise un entier par 10.... Le résultat sera donc un entier
nombre=nombre/10;
Exemple, 10 / 3 = 3 pour le langage C
et 3/10 = 0 pour le langage C
essai d'utiliser des floats à la place et je pense que tu n'aura plus de problème
Source : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14337-une-bete-de-calcul#ss_part_1
Essai cette méthode
int len(float nombre) { int i=1; while (nombre>=10) { nombre=nombre/10; i++; } return i; }
J'espère que ça marchera mais normalement oui....
Salut ;-),
Utilise les balises <code*> ton code </code*>, ce sera plus lisible :-)
(enlève les étoiles pour ton code, c'était pour ne pas que la balise s'applique)
nombre n'est pas défini, il ne vaut donc rien.
Utilise les balises <code*> ton code </code*>, ce sera plus lisible :-)
(enlève les étoiles pour ton code, c'était pour ne pas que la balise s'applique)
nombre n'est pas défini, il ne vaut donc rien.
Bonjour,
Ta fonction est parfaitement correcte.
L'erreur vient d'ailleurs. Probablement de la fonction qui appelle len(...);
Pourrais-tu montrer ton code en entier. Avec les balises code (à droite du bouton souligné).
Ta fonction est parfaitement correcte.
L'erreur vient d'ailleurs. Probablement de la fonction qui appelle len(...);
Pourrais-tu montrer ton code en entier. Avec les balises code (à droite du bouton souligné).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int nombreChiffres ( int nombre ) { int i = 1; if (nombre < 0) { nombre = -nombre; } while (nombre >= 10) { nombre /= 10; i++; } return i; } int main ( ) { int N; printf("Nombre : "); scanf("%d", &N); printf("Nombre de chiffres de %d : %d\n", N, nombreChiffres(N)); return 0; }
Bonjour, 'Submin merci pour ton aide j'ai fait ce que tu m'as dit mais ca ne marche toujours pas :(
Tu as changé ta variable nombre dans ton main() aussi?
Car sinon ça change rien, ça la considérera toujours comme un entier
Tu fait rentré une variable entier dans un float, du coup le langage C l'utilise toujours comme un entier (a mona vis ton erreur est la)
je vais tout de même vérifier le code chez moi
Car sinon ça change rien, ça la considérera toujours comme un entier
Tu fait rentré une variable entier dans un float, du coup le langage C l'utilise toujours comme un entier (a mona vis ton erreur est la)
je vais tout de même vérifier le code chez moi
Merci a tout ceux qui m'ont envoyer de bon conseil mais la je bloc :( voila mon code en entier :
#include <stdio.h>
#include <stdlib.h>
int len(int nombre);
int main(int argc, char *argv[])
{
int N;
printf("N = ");
scanf("%d", N);
printf("Nombre de Chiffre = %d\n", len(N));
return 0;
}
int len(int nombre)
{
int i=0;
while (nombre>1)
{
nombre=nombre/10;
i++;
}
return i;
}
#include <stdio.h>
#include <stdlib.h>
int len(int nombre);
int main(int argc, char *argv[])
{
int N;
printf("N = ");
scanf("%d", N);
printf("Nombre de Chiffre = %d\n", len(N));
return 0;
}
int len(int nombre)
{
int i=0;
while (nombre>1)
{
nombre=nombre/10;
i++;
}
return i;
}
Certes, sauf qu'il a mis > 1 et non = 1. Du coup, son algorithme fonctionne.