C 为什么我的代码没有';你不能像我想的那样工作吗?我怎样才能检查日期的有效性?

C 为什么我的代码没有';你不能像我想的那样工作吗?我怎样才能检查日期的有效性?,c,validation,struct,kali-linux,C,Validation,Struct,Kali Linux,我想让用户插入她的名字并检查他是否插入了字符,否则让他插入一个有效的名字,并为卡号插入一个6整数,否则让他插入一个有效的数字,然后插入到期日期。现在,如何检查插入日期是否有效 int main() { char name[20]; int cardnumber, pin; float balance; printf("Enter your first and last name : "); scanf("%s&qu

我想让用户插入她的名字并检查他是否插入了字符,否则让他插入一个有效的名字,并为卡号插入一个6整数,否则让他插入一个有效的数字,然后插入到期日期。现在,如何检查插入日期是否有效

int  main()
{
    char name[20];
    int cardnumber, pin;
    float balance;    
    printf("Enter your first and last name :  ");
    scanf("%s",name);
    for (int i = 0; name[i] != '\0'; ++i)
    {
        if (!(name[i] >= 'a' && name[i] <= 'z')
         || !(name[i] >= 'A' && name[i] <= 'Z'))
        {  
            printf("The entered name is not all  Alphabet char plz insert a valid name\n");
            break;
        }
    }
    printf("insert your card number ~6 digit~\n ");
    scanf("%d", &cardnumber);
    if (!(sizeof(cardnumber) != 6)
     || !(cardnumber >= '0' && cardnumber <= '9'))
    {
        printf("plz insert a valid 6digit card number\n "); 
        scanf("%d", cardnumber);
    }
    struct date datei;
    printf("insert Expiration date of your card :\n");
    printf("day :");  
    scanf("%d", &datei.day);
    printf("month :");
    scanf("%d", &datei.month);
    printf("year :"); 
    scanf("%d", &datei.year);
    printf("Enter your acount Balance " );
    scanf("%d", &balance);
    printf("Enter your pin ~3digit~ :");
    // scanf("%d", &pin);
    // if (sizeof(pin)>3)
    // {printf("Enter a valid pin \n");
    // scanf("%d", &pin);}
    scanf("%d", pin);
    while (sizeof(pin) == 3)
    {
        printf("ENTER YOUR SECRET PIN NUMBER:");
        scanf("%d", &pin);
        if (sizeof(pin) != 3)
            printf("PLEASE ENTER VALID PASSWORD\n");
    }
}
intmain()
{
字符名[20];
内部卡号,pin;
浮动天平;
printf(“输入您的名字和姓氏:”);
scanf(“%s”,名称);
对于(int i=0;name[i]!='\0';++i)
{
如果(!(姓名[i]>='a'&姓名[i]='a'&姓名[i]='0'&卡号3)
//{printf(“输入有效pin\n”);
//scanf(“%d”,&pin);}
扫描频率(“%d”,引脚);
while(sizeof(pin)==3)
{
printf(“输入您的密码:”);
scanf(“%d”和pin);
如果(引脚尺寸)!=3)
printf(“请输入有效密码\n”);
}
}
您在这些语句中遗漏了
&
。请将这些语句更改为:

scanf("%d",&cardnumber);
scanf("%d",&datei.day);
scanf("%d",&datei.month);
scanf("%d",&datei.year);

scanf(“%d”,cardnumber);
=>
scanf(“%d”,cardnumber);
。测试逻辑看起来也错误。为什么要这样做?这是C语法。请访问手册页:
scanf("%d",&cardnumber);
scanf("%d",&datei.day);
scanf("%d",&datei.month);
scanf("%d",&datei.year);