问题描述
通过cs50的submit50检查运行我的程序时,除了验证4222222222222
(输出VISA
(而不是INVALID
)时,所有工作都有效。当我之前打印出count变量时,有时会输出VISA
。任何解决方案将不胜感激,因为我似乎无法正确解决此问题。
说明:编写一个程序,提示用户输入信用卡号,然后根据此处每个格式的定义(通过
printf
报告它是有效的American Express,MasterCard或Visa卡号) 。为了使我们的代码测试自动化,我们要求您程序的输出的最后一行是AMEX\n
或MASTERCARD\n
或VISA\n
或INVALID\n
,仅此而已
#include <stdio.h>
#include <cs50.h>
int main(void)
{
//get input from user
long CardNum = get_long("Input credit card number:");
bool nvalid = true;
//count number of digits
int count = 0;
long temp1num = CardNum;
while (temp1num > 0)
{
temp1num = temp1num / 10;
count++;
}
//printf("%i\n",count);
if (!(count == 13 || count == 15 || count == 16))
{
printf("INVALID\n");
}
else
{
.....
问题出现在代码的开头,所以我只复制了那部分。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)