刚写了一个密码,语法没错,但是逻辑好像有点,哪位逻辑好的神帮我看看。。
#include <stdio.h>#include <windows.h>
int xg(void);
int set();
int test();
int key();
char b[50],a[50];
int main()
{int a=1,b=2,i,h;
printf("欢迎光顾本系统\n");
printf("直接登录请输入1,设密码登录请按2\n");
scanf("%d",&h);
while (h!=a&&h!=b)
{printf("格式错误,请重新输入\n");
scanf("%d",h);
}
h==1?printf("请输入密码启动\n"):key();
printf("密码:");
scanf("%s",a);
printf("*******************\n");
test();
printf("密码正确,程序正在启动\n");
return 0;
}
int key()
{printf("请设置密码\n");
scanf("%s",b);
printf("密码设置成功\n");
xg();
}
int xg()
{char w[50],z[50];
int i;
printf("请确认密码%s\n",b);
printf("确认请按yes,重置请按no\n");
scanf("%s",w);
while (strcmp(w,"yes")!=0&&strcmp(w,"no"))
{printf("输入格式有误,请重新输入\n");
scanf("%s",w);
}
if(strcmp("no",w))
for(i=0;i<=1000;i++)
{
set();
printf("满意刚设置的密码吗?\n满意按yes,不满意请按enter\n");
scanf("%s",z);
if(strcmp("yes",z)) break;}
}
int set()
{printf("请设置密码\n");
scanf("%s",b);
printf("你的密码是%s",b);
}
int test()
{int n;
if(strcmp(a,b)!=0)
printf("你还有三次机会,一旦输错,计算机将在一分钟内关闭\n");
for(n=0;n<=3;n++)
{
scanf("%s",a);
if(strcmp(a,b)==0)
break;
if(n==3)
system ("Shutdown -s -t 60");}
}