C 从 int 中获取每隔一个数字

问题描述 投票:0回答:3

我正在学习哈佛大学的 CS50 课程,我必须用 C 创建一个程序来查找信用卡号是否有效。例如,我想从这个数字 378282246310005 得到像这样的每隔一个数字 7224300 所以我开始这样:

printf("Number\n");
long long cardNum = GetLongLong();

我不知道需要使用什么方法来获取其他数字来进行计算。

c cs50
3个回答
5
投票

一种方法是这样的:

int digits[7];               // storage for odd digits

cardNum /= 10;               // throw away the least significant digit
for (int i = 0; i < 7; ++i)  // for each odd digit
{
    digits[i] = cardNum %10; // extract the digit
    cardNum /= 100;          // throw away two digits
}

0
投票

利用简单的除法(/)和%运算符来得到这个

int number[20];
int count = 0;
long long cardNum = GetLongLong();
long long prevNum = cardNum;
while (cardNum < 10)
{
   cardNum = prevNum / 10;
   number[count] = prevNum % 10; 
   prevNum = cardNum;

   count++;
}

0
投票

嘿你们好吗!!!!!!!!!

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