有效的VISA:4222222222222输出为无效

问题描述

通过cs50的submit50检查运行我的程序时,除了验证4222222222222(输出VISA(而不是INVALID)时,所有工作都有效。当我之前打印出count变量时,有时会输出VISA。任何解决方案将不胜感激,因为我似乎无法正确解决此问题。

说明:编写一个程序,提示用户输入信用卡号,然后根据此处每个格式的定义(通过printf报告它是有效的American Express,MasterCard或Visa卡号) 。为了使我们的代码测试自动化,我们要求您程序的输出的最后一行是AMEX\nMASTERCARD\nVISA\nINVALID\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 (将#修改为@)