输入密码,设置一个密码,然后输入密码,机会为 3 次,三次密码错误就直接退出
#include <stdio.h>
#include <string.h>//调用strcmp函数的头文件
int main()
{
char m[17]={0};
char um[17]={0};
int n=3;
printf("请设置密码(16位以内):\n");
scanf("%s",m);
printf("请输入密码(16位以内):\n");
scanf("%s",um);
int a=strcmp(m,um);
while(a!=0)
{
printf("密码错误,请重新输入密码(还有%d次机会):\n",n);
scanf("%s",um);
int a=strcmp(m,um);
n--;
if(a==0)
{
printf("密码正确\n");
return 0;
}
if(n==0)
{
printf("密码错误机会已用完\n");
return 0;
}
}
printf("密码正确\n");
return 0;
}
运行结果:
请设置密码(16位以内):
123
请输入密码(16位以内):
123
密码正确
请设置密码(16位以内):
123
请输入密码(16位以内):
1
密码错误,请重新输入密码(还有3次机会):
2
密码错误,请重新输入密码(还有2次机会):
3
密码错误,请重新输入密码(还有1次机会):
123
密码正确
改良后:
#include <stdio.h>
#include <string.h>
int main()
{
char m[17]={0};
char um[17]={0};
int n=3;
printf("请设置密码(16位以内):\n");
scanf("%s",m);
while(n)
{
printf("请重新输入密码(还有%d次机会):\n",n);
scanf("%s",um);
if(strcmp(m,um)==0)
{
printf("密码正确\n");
break;
}
n--;
if(n==0)
{
printf("机会用完\n");
}
}
return 0;
}