假设有3个用户,用户名分别为"aaa”,”bbb”,
ccc”。密码分别为"aaa111”,”bbb111”, ”ccc111”。请编写一个程序,首先输入用户名,如果用户名错误请输出“用户不存在!”,程序结束。如果用户名正确,提示输入对应密码,3次密码错误输出“密码错误!”,密码正确屏幕出现4位数字的随机验证码并提示输入。验证码正确,输出“欢迎!”,验证码错误则重新出现新的验证码提示输入。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
struct User
{
char username[10];
char password[10];
};
int main()
{
struct User users[3] = {{"aaa", "aaa111"}, {"bbb", "bbb111"}, {"ccc", "ccc111"}};
char buffer[10], verification[5];
printf("请输入用户名: ");
scanf("%s", buffer);
struct User *user = NULL;
for (int i = 0; i < 3; i++)
if (strcmp(users[i].username, buffer) == 0)
user = &users[i];
if (!user)
{
printf("用户不存在!\n");
return 0;
}
int count = 0;
do
{
printf("请输入密码: ");
scanf("%s", buffer);
if (strcmp(user->password, buffer) == 0)
{
break;
}
else
{
printf("密码错误!请重新输入\n");
count++;
}
} while (count < 3);
if (count == 3)
{
printf("密码错误!\n");
return 0;
}
srand(time(NULL));
while (1)
{
sprintf(verification, "%04d", rand() % 10000);
printf("请输入验证码%s: ", verification);
scanf("%s", buffer);
if (strcmp(verification, buffer) == 0)
{
printf("欢迎\n");
break;
}
}
return 0;
}