A voir également:
- Code C++ avec résultat pas cohérent
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
3 réponses
Bonjour,
1) Ce tableau est mal initialisé :
2) Heureusement que tu t'arrêtes à 10 !!!
Version courte :
3) Tu as déclaré nombreFinal de type unsigned long int, dont la valeur maximale est ULONG_MAX ≈ 4.29*10^9 mais tu l'utilises comme s'il pouvait aller jusqu'à 10^50 ! Cela va entraîner des erreurs de calcul...
1) Ce tableau est mal initialisé :
int tableau[10][50] = {11};
2) Heureusement que tu t'arrêtes à 10 !!!
N = B % 10; B = B / 10; switch(N) { case 0: tableau[0][i] = i; break; case 1: tableau[1][i] = i; break; case 2: tableau[2][i] = i; break; case 3: tableau[3][i] = i; break; case 4: tableau[4][i] = i; break; case 5: tableau[5][i] = i; break; case 6: tableau[6][i] = i; break; case 7: tableau[7][i] = i; break; case 8: tableau[8][i] = i; break; case 9: tableau[9][i] = i; break; }
Version courte :
N = B % 10; B = B / 10; tableau[N][i] = i;
3) Tu as déclaré nombreFinal de type unsigned long int, dont la valeur maximale est ULONG_MAX ≈ 4.29*10^9 mais tu l'utilises comme s'il pouvait aller jusqu'à 10^50 ! Cela va entraîner des erreurs de calcul...
while(i < 49 ) { if((tableau[j][i]) < 10 && (tableau[j][i]) > 0) { x = 1; nombreFinal = z + j*(pow(10,(i-1)));
Merci de prendre le temps de répondre.
Voilà j'ai fait les modifications que tu m'as dis, néanmoins mon problème est toujours là, il ne me renvoit pas tout le temps la bonne valeur...Soit 1 de plus ou 2 ou 3 , ou 1 de moins,etc...
Voilà j'ai fait les modifications que tu m'as dis, néanmoins mon problème est toujours là, il ne me renvoit pas tout le temps la bonne valeur...Soit 1 de plus ou 2 ou 3 , ou 1 de moins,etc...
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
unsigned long int N = 0, B = 25, i = 1, x,y,z, j = 0, nombreFinal = 0;
unsigned long int nombre = 1;
int tableau[10][50] = {NULL} ;
cout << "Ecrivez un nombre (de moins de 10 chiffre):" << endl;
cin >> nombre ;
B = nombre;
while(B > 0 ){
N = B % 10;
B = B / 10;
tableau[N][i] = i;
i++;
}
x = i;
z = 0;
while(j <= 9)
{
i = 0;
y = 0;
while(i < 10 )
{
if((tableau[j][i]) < 10 && (tableau[j][i]) >= 1)
{
x = 1;
nombreFinal = z + j*(pow(10,(i-1)));
z = nombreFinal;
if (x == 1 && y != 5)
{
cout << "\n" << j << ":";
x = 2;
y = 5;
}
cout << " " << tableau[j][i]-1 ;
}
else
{
}
i++;
}
j++;
}
cout <<"\n" << nombreFinal;
}
"il ne me renvoit pas tout le temps la bonne valeur...Soit 1 de plus ou 2 ou 3 , ou 1 de moins"
Je ne sais pas comment tu exécutes ton programmes, mais quand je testes ton code, ça fait n'importe quoi... c'est pas juste la mauvaise valeur, tout est faux !
http://cpp.sh/7zcs
Je ne sais pas comment tu exécutes ton programmes, mais quand je testes ton code, ça fait n'importe quoi... c'est pas juste la mauvaise valeur, tout est faux !
http://cpp.sh/7zcs
Ecrivez un nombre (de moins de 10 chiffre):
1
0: 3 3
1: 0
3: 0
6: 1
9: 0
90009001
Je viens de copier/coller mon code sur ton site, il m'affiche le bon résultat et pas ce que tu a c/p au dessus, pourtant en essayant ton lien effectivement ça affiche le résultat que tu as envoyer...
Les résultats pas tous cohérent, retourné par mon compilateur :
http://zupimages.net/viewer.php?id=16/16/bykh.png
http://zupimages.net/viewer.php?id=16/16/ejlt.png
http://zupimages.net/viewer.php?id=16/16/uisb.png
http://zupimages.net/viewer.php?id=16/16/rohh.png
Mon code sur ton site, qui marche :
http://cpp.sh/2g7n
Le truc bizarre c'est que sur ton site tout fonctionne impeccable, pas sur code::blocks ....Je vais essayer avec un troisieme compilateur voir si le problème vient de code::blocks.
PS : J'ai initialisé le tableau en tableau[10][11] plutôt que tableau[10][50] mais j'ai oublié de remplacer dans le dernier code que j'ai copier ici...J'crois pas que ça change grand chose mais bon !
Les résultats pas tous cohérent, retourné par mon compilateur :
http://zupimages.net/viewer.php?id=16/16/bykh.png
http://zupimages.net/viewer.php?id=16/16/ejlt.png
http://zupimages.net/viewer.php?id=16/16/uisb.png
http://zupimages.net/viewer.php?id=16/16/rohh.png
Mon code sur ton site, qui marche :
http://cpp.sh/2g7n
Le truc bizarre c'est que sur ton site tout fonctionne impeccable, pas sur code::blocks ....Je vais essayer avec un troisieme compilateur voir si le problème vient de code::blocks.
PS : J'ai initialisé le tableau en tableau[10][11] plutôt que tableau[10][50] mais j'ai oublié de remplacer dans le dernier code que j'ai copier ici...J'crois pas que ça change grand chose mais bon !
Bonjour.
Plutôt que de pointer tout ce qui ne va pas, je te renvoi directement sur cette conversation (à bien lire jusqu'à la fin, surtout la page 2):
https://codes-sources.commentcamarche.net/forum/affich-10056758-le-poids-d-un-nombre
C'est un exercice qui est apparemment souvent donné...
Quelques conseils:
- Évite les using namespace, c'est crade et dangereux, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace/
- En C++ on évite "NULL", soit tu utilises "0", soit tu as un compilo "moderne" et tu utilises "nullptr".
- Préfère <cmath> à <math.h> (en C++, si tu un header qui finit par ".h" regarde si la version commençant par un "c" existe).
Plutôt que de pointer tout ce qui ne va pas, je te renvoi directement sur cette conversation (à bien lire jusqu'à la fin, surtout la page 2):
https://codes-sources.commentcamarche.net/forum/affich-10056758-le-poids-d-un-nombre
C'est un exercice qui est apparemment souvent donné...
Quelques conseils:
- Évite les using namespace, c'est crade et dangereux, voir: http://0217021.free.fr/portfolio/axel.berardino/articles/bon-usage-using-namespace/
- En C++ on évite "NULL", soit tu utilises "0", soit tu as un compilo "moderne" et tu utilises "nullptr".
- Préfère <cmath> à <math.h> (en C++, si tu un header qui finit par ".h" regarde si la version commençant par un "c" existe).