#include <stdio.h>
#include <string.h>
int nnuu1(int nnn)
{
char name[10][25] = {
"韩信" ,
"李广" ,
"叫" ,
"韩国水果工会" ,
"武圣" ,
"肖灵峰" ,
"张角" ,
"男神" ,
"彼得帕克" ,
"周树人" ,
};
int id[10] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ,10 };
char in_name[25] = {};
int in_id = 0;
int flg = 5;
int num = -1;
do
{
printf("请输入学生姓名:");
scanf("%s" , in_name);
getchar();
for (int i = 0; i < 10; i++)
{
if (strcmp(in_name , name[i]) == 0)
{
num = i;
break;
}
}
if (num >=0)
{
printf("账号正确\n");
printf("请输入学生id:");
scanf("%d" , &in_id);
getchar();
if (in_id == id[num])
{
printf("密码正确\n");
break; //跳出循环
return -1;
}
else
{
printf("密码错误\n");
}
}
else
{
printf("账号错误\n");
printf("请重新输入 还有 %d 次机会\n" , flg);
flg--;
continue;
}
} while (flg > 0);
}
int main(int argc, char const *argv[])
{
int nnn =nnuu1(nnn);
if (nnn == 0)
{
printf("给你机会不中用啊\n");
}
else
{
printf(
"*****************\n****欢迎 用户****\n*****************\n");
}
return 0;
}
输出错了还可以在输入5次也是非常的智能
用strcmp进行对比
for (int i = 0; i < 10; i++)
{
if (strcmp(in_name , name[i]) == 0)
{
num = i;
break;
}
strcmp是一个比较常用的函数
- 返回值为0:表示两个字符串相等。
- 返回值小于0:表示str1小于str2。
- 返回值大于0:表示str1大于str2。
在你的代码中,if (!strcmp(in_name, name[i])) 表示比较 in_name 和 name[i] 是否相等。如果相等,返回值为0,条件成立,执行if语句中的代码块!!!
梦泪老师必须是第一