J'essaye de faire une boucle do-while. J'essaie d'obtenir l'entrée de l'utilisateur tant que la longueur de l'entrée de l'utilisateur est inférieure à 13 chiffres ou supérieure à 16 chiffres.Pourquoi est-ce que je ne ferai pas d'arrêt de boucle en boucle?
Exemple:
1234 (4 chiffres) irait le do while encore,
123493919295919 (14 chiffres) arrêterait la boucle.
#include <cs50.h>
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
int nDigits;
do
{
n = get_int("Please enter your credit card number:\n");
nDigits = floor(log10(abs(n))) + 1;
}
while (nDigits < 13 || nDigits > 16);
}
'int's ne peut probablement même pas contenir 14 chiffres sur votre installation. – user2357112
Un numéro de carte de crédit est généralement une chaîne, pas un int. Imaginez que votre numéro de carte de crédit commence par zéro et vous êtes condamné. – Fabien
N'utilisez pas 'get_int()'. Écrivez votre propre fonction. Vous ne pouvez rien faire pour réparer votre programme tant que vous utilisez cette fonction. – m0h4mm4d