【发布时间】:2025-11-29 23:35:01
【问题描述】:
- 输入 PIN 并验证正确
- 更改密码
- 显示输入 PIN 的次数 (i) 成功 (ii) 不正确
- 退出程序
我在上面的问题中遇到问题选项 2,它应该执行以下操作: 如果他们选择选项 2,则应允许他们更改 PIN。程序应首先验证原始引脚。当他们输入新 PIN 时,您的程序必须通过询问 客户重新输入此新 PIN。这将验证输入的新 PIN 是正确的,没有出错。如果有任何差异和 验证失败,您的程序必须显示相应的错误消息 并且原来的 PIN 应该保持不变。
当用户输入他们的新密码时,我的问题出现了,1.密码必须是 4 位长 2.如果用户在输入新密码时输入错误,原始密码必须保持不变。如果他们正确输入了他们的新密码,那么他们的新密码必须更改为该密码。我已经发布了选项 2 的代码。
如果我的问题不清楚,请向我提问。
case 2:
{
//ask user to enter their current pin
printf("Please enter your current pin \n");
scanf("%d",¤t_pin);
if(current_pin != 1234)
{
//if pin entered is not the same as 1234-print error
printf("Incorrect pin \n");
unsuccessful ++;
break;
}//end if
else
{
successful++;
//ask user to enter new pin
printf("Please enter your new pin: \n");
scanf("%d",&new_pin);
} //end else
//set new pin as the current pin
current_pin = new_pin:
//check if pin is 4 digits long
if(current_pin>999 && current_pin<10000)
{
//ask user to re enter their new pin
printf("Please re-enter your new pin: \n");
scanf("%d",&new_pin);
printf("Your new pin is %d", new_pin);
//set new pin as the current pin
current_pin = new_pin:
}
else
{
printf("Incorrect entry- pin must be 4 digits and cannot start with a 0");
}
new_pin=current_pin;
break;
}
我知道这段代码很笨拙,希望你能理解它。我知道我想做什么,但我做不到。
****编辑**** 好的,我现在明白我让你们中的一些人感到困惑。也许我应该改写我的问题。并将其分解为多个部分。如果它更容易,我可以发布程序的完整代码。
我希望用户输入他们当前的 pin,如果程序是第一次运行,这个 pin 被赋值为 1234。如果用户已经完成了这个过程,当前 pin 现在将是他们的 pin已将其更改为。
新密码必须是4位数字
这可能是推它,但如果用户在我的程序中输入一个字母,它将进入无限循环,有没有简单的方法解决这个问题。
【问题讨论】:
-
我看到的第一件事是,如果用户输入的新 PIN 码不正确,您应该退出该功能。实际上,您通过并设置 new_pin=current_pin; !!!!但是,您能告诉我们您实际上遇到了什么问题吗?
-
你的 switch 语句是否包含在循环中?首先,您应该有类似 while(current_pin != 1234) 之类的内容,您要求用户再次输入它,直到他们决定退出或达到不成功尝试的次数。
标签: c