Probleme de code en C
Résolu
Omaflak
-
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 -
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
2 réponses
Bonjour,
Evite les variables globales.
Aïe. int nombre[4]; signifie que nombre[i] est défini pour i=0,1,2,3.
Du coup pour nombre[4], segfault.
pow(i,10);
pow(10,i); ça sera mieux pour ton algorithme.
De plus, tu peux te passer de cette fonction en améliorant ton algorithme.
Dans ta deuxième boucle for, tu as le même problème avec nombre[j] : j varie de 1 à 4 (au lieu de 0 à 3).
nombre[j]=floor(N/facteur);
Il faut mettre un cast.
De plus, l'algorithme est faux. Car pour i=2, tu auras nombre[2]=floor(1234/100) = floor(12) = 12.0f;
Pourquoi mettre floor() ? Il ne sert à rien. De plus il faut ne pas oublier de soustraire par 10 (12-10) = 2.
Je te laisse réfléchir sur ton algorithme pour le corriger. N'hésite pas à faire le calcul à la main pour comprendre l'évolution du programme.
Evite les variables globales.
for (i=1 ; i<5 ; i++) nombre[i]
Aïe. int nombre[4]; signifie que nombre[i] est défini pour i=0,1,2,3.
Du coup pour nombre[4], segfault.
pow(i,10);
pow(10,i); ça sera mieux pour ton algorithme.
De plus, tu peux te passer de cette fonction en améliorant ton algorithme.
Dans ta deuxième boucle for, tu as le même problème avec nombre[j] : j varie de 1 à 4 (au lieu de 0 à 3).
nombre[j]=floor(N/facteur);
Il faut mettre un cast.
De plus, l'algorithme est faux. Car pour i=2, tu auras nombre[2]=floor(1234/100) = floor(12) = 12.0f;
Pourquoi mettre floor() ? Il ne sert à rien. De plus il faut ne pas oublier de soustraire par 10 (12-10) = 2.
Je te laisse réfléchir sur ton algorithme pour le corriger. N'hésite pas à faire le calcul à la main pour comprendre l'évolution du programme.