如何遍历一个数字以获得其他数字

对于一项家庭作业计划,我们要求检查信用卡号是否有效。 虽然我对如何解决此问题相当确定,但我仍然坚持遍历信用卡号并获取第二个数字。

我已经知道我需要使用模和除法,并且我得到倒数第二个数字,但是我迷失了如何迭代其余数字。 在代码中,我检查了确实获得倒数第二个数字的代码,在此之后,我尝试使用一些代码来遍历完整的数字。希望有人可以向我展示正确的方向!

   long number = 378282246310005;
    int digit;
    int cc_number;
    cc_number = number % 10;
    digit = cc_number / 10;
    printf("%i\n",digit);

while (number > 0)
   {
      digit += number % 10;
      number /= 10;
      printf("%li",number);
   }
   printf("\n");
zxczhao2009 回答:如何遍历一个数字以获得其他数字

while循环之前,您倒数了最后一位数字和其余数字。

number % 10是最后一位数字,number / 10是剩余数字。

如果变量打算包含一位数字,则添加到digit毫无意义。 (您可能需要添加数字以进行有效性检查。)

提取所有数字及其位置的示例代码:

#include <stdio.h>

int main(void)
{
    long number = 378282246310005;
    int digit;
    int position = 0;

    printf("%li\n",number);

    while (number > 0)
    {
        digit = number % 10;
        number /= 10;
        printf("(%i) %i ",position,digit);
        position++;
    }
    printf("\n");

    return 0;
}

此打印

378282246310005
(0) 5 (1) 0 (2) 0 (3) 0 (4) 1 (5) 3 (6) 6 (7) 4 (8) 2 (9) 2 (10) 8 (11) 2 (12) 8 (13) 7 (14) 3 

要选择其他所有数字,您可以在每个循环周期中检查position % 2或在0和1之间切换变量。

本文链接:https://www.f2er.com/3150327.html

大家都在问