Donc, je demande à l'utilisateur un numéro, stocké sous forme d'un essentiellement, j'essaie d'obtenir ceci: p> si Je ne sais pas vraiment comment je pourrais itérer sur long int code>, alors je veux faire une boucle et itérer que
long int code>, obtenir tout Les numéros de position impairs dans un
un tableau impair code> et tous les numéros de position même dans un
même une matrice code>. J'essaie de résoudre le problème de crédit défini à partir de CS50
long cc = 12345678912345 code >, alors même devrait être
même [7] = {1, 3, 5, 7, 9, 2, 4} code> et impair doit être
impair [7] = {2, 4, 6, 8, 1, 3, 5} code> p>
long cc code> pour ajouter le nombre spécifique J'ai besoin dans le tableau p> p>
3 Réponses :
Vous pouvez utiliser le% de l'opérateur modulo pour obtenir chaque chiffre. L'opérateur modulo vous donne fondamentalement le reste, donc si vous le faites pour% 10, alors cela vous donnera le dernier chiffre. Donc, 123% 10 = 3. Ensuite, vous divisez le numéro de carte de crédit par 10 et répétez le processus pour obtenir le chiffre suivant. EX 123/10 = 12, puis 12% 10 est 2. Si vous faites une variable de compteur pour compter le nombre de fois que vous avez effectué la boucle, cela vous donnera la position. Si vous faites la position% 2, cela vous dira s'il est impair ou même.
while (CC > 0) digit = CC % 10 if (position % 2 == 1) //it's odd else //its even CC = CC/10 //to prepare for next iteration of the loop position = position + 1 //position starts at right side of CC number
C'est assez facile, il suffit d'allouer deux matrices avec le nombre de numéros en CC en utilisant quelque chose comme puis calculez votre truc comme ceci: p>
Le problème principal que vous avez est que les matrices en C ont une taille fixe, définie lors de leur création et que la taille ne peut pas être modifiée. Donc, il n'ya aucun moyen de "ajouter" à un tableau.
La façon habituelle de traiter est de créer une matrice avec une taille maximale (ou une capacité) et de suivre la partie "Utilisation" de la matrice avec une variable distincte (souvent appelé «taille»). À tout moment, les éléments de matrice de 0 à la taille-1 sont "utilisés" et valides, tandis que ceux de la taille à la capacité-1 sont "libres" et peuvent contenir des valeurs de déchets qui seront ignorées. P>
Étant donné que la matrice et la variable de taille sont si intimement liées, il est courant de les combiner dans une structure pour faciliter la gestion des choses: p> maintenant, vous pouvez initialiser un vide matricielle code> et vous pouvez ensuite ajouter à ce tableau avec p> bien sûr, cela finira par attribuer la Montant maximum pour chaque tableau, la limite doit donc être assez petite. Vous pouvez le rendre plus flexible en allouant le tableau sur le tas et en stockant la capacité de la matrice ainsi que la taille: p> mais cela nécessite plus de gestion à suivre lorsque le la matrice doit être redimensionnée ou libérée. P> p>
Bienvenue à cela. Veuillez prendre le Tour , lire Comment Demandez , et postez un exemple de reproductible minimal . Vous devez montrer un peu d'effort ici si vous attendez que quelqu'un vous aide. Merci.