J'essaie de saisir un tableau Long Long Int et de répartir chaque numéro de place dans son propre emplacement dans un tableau, dans l'ordre bien sûr, avec array[0] étant le plus grand nombre.
Ainsi, par exemple, si le nombre est 314, alors le tableau [0] = 3, le tableau [1] = 1, et le tableau [2] = 4.
Ceci fait partie d'un projet de calculatrice pour un microcontrôleur où j'écris la bibliothèque graphique (pour le plaisir) et utilise des tableaux pour afficher chaque ligne.
Le problème est qu'il doit être capable de traiter des nombres très élevés (9 999 999 999+), et j'ai des problèmes avec les grands nombres. Si la longueur est inférieure à 1 000 000, il écrit tous les nombres parfaitement, mais plus j'ajoute de nombres, plus ils commencent à être mal écrits vers la fin.
Par exemple, 1 234 567 890 s'affiche comme 1 234 567 966.
Voici le bout de code que j'utilise :
long long int number = 1234567890;
int answerArray[10];
int numberLength = 10;
for(writeNumber = 0; writeNumber < numberLength; writeNumber++)
{
answerArray[writeNumber] = ((int)(number / pow(10, (numberLength - 1 - writeNumber))) % 10;
}
Je suis presque sûr que cela a à voir avec le "%" et les types de données multiples, car n'importe quel nombre dans la plage Int fonctionne parfaitement.
Tu vois où je vais mal ? Y a-t-il une meilleure façon d'atteindre mon objectif ? Des conseils pour les grands nombres ?