c - 为什么我的代码不能像我想要的那样工作?以及如何检查日期的有效性?
问题描述
我想让用户插入她的名字并检查他是否插入了字符,否则让他插入一个有效的名字,并为卡号插入一个 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");
}
}
解决方案
scanf("%d",cardnumber);
scanf("%d",datei.day);
scanf("%d",datei.month);
scanf("%d",datei.year);
你错过&
了这些陈述。将这些语句更改为:
scanf("%d",&cardnumber);
scanf("%d",&datei.day);
scanf("%d",&datei.month);
scanf("%d",&datei.year);
推荐阅读
- python - 如何在python中获取数组值不同的索引
- android - Camera2 - 在某些设备上不时出现“捕获会话配置失败”和“Surface 已被放弃”
- c - 重新安装工具链后出现大量“多重定义”
- java - 为什么我不能在 Eclipse 2021-03 中将 persective 从 Java 更改为 C/C++?
- time-complexity - 包含所有字符的最小窗口的时间复杂度
- python - **DOCUMENT SIMILARITY** 的哪种算法在本地计算机上计算是合理的?
- javascript - 这种在Javascript中声明变量的方式是什么意思?
- google-sites - 使用 GoogleSites 功能构建 GoogleBusiness 网站
- excel - 如何在 VBA 代码中插入单元格引用以连接 weburl
- qt-creator - 如何通过单个操作一次自动缩进所有项目文件