C:如何使用while循环对多个数字整数进行计数?

问题描述 投票:1回答:1
int main(){
        int cardnum;
        int count = 0;
        do{
            printf("Enter your 16-digit Credit Card Number!\n");
            scanf(" %d", &cardnum);
            while(cardnum>0)
            {
                cardnum = cardnum / 10;
                count++;
            }
        }while( count != 16);
    }

所以我试图制作一个程序,要求您插入CC的16位,如果您不输入16位,它会一直询问您,直到您这样做。

由于某种原因,我遇到了无限循环。smb可以解释吗?

c while-loop do-while
1个回答
0
投票

您不会在每次输入时将count重置为0。

int main(){
        int cardnum;
        int count = 0;
        do{
            count = 0; /* Added this */
            printf("Enter your 16-digit Credit Card Number!\n");
            scanf(" %d", &cardnum);
            while(cardnum>0)
            {
                cardnum = cardnum / 10;
                count++;
            }
        }while( count != 16);
    }

尽管,我认为您可以检查scanf()的返回值来读取字符数。那可能会更容易。最后,存在int无法在其中保留16位数字的问题。

© www.soinside.com 2019 - 2024. All rights reserved.