用c语言编辑用户系统
问题描述:
答
题主代码修改如下,供参考:
#include<stdio.h>
#include<string.h>
struct denglu{
char username[20];
char password[20];
}leader[2]={"xiaowang","xiaozhao","xiaozhao","xiaowang"};
int main()
{
int i, n, m;
char leader_name[20];
char leader_word[10];
printf("\n\n");
printf("*******************************\n");
printf("********* 用户登录系统 *********\n");
printf("*******************************\n");
printf("\n\n");
printf("Please enter username.\n");
for (m = 0; m < 3;)
{
printf("username:");
scanf("%s", leader_name);
//printf("\n");
for (i = 0; i < 2; i++){
if (strcmp(leader[i].username, leader_name) == 0)
{
printf("\tPlease enter password.\n");
for (n = 0; n < 3; n++) {
printf("\tpassword:");
scanf("%s", leader_word);
if (strcmp(leader[i].password, leader_word) == 0) {
printf("\n\n");
printf("\t*******************************\n");
printf("\t********* 欢迎用户! *********\n");
printf("\t*******************************\n");
printf("\n\n");
break;
}
else if (n < 3-1)
printf("\tPlease enter again!\n");
}
if (n >= 3)
printf(" 密码登录已超过次数限制!无法登陆!");
break;
}
}
if (i < 2)
break;
else{
m++;
if (m < 3)
printf("\tUsername error! Please enter again!\n");
else
printf("\t用户登录已超过次数限制!无法登陆!");
}
}
}
答
应该是:if(strcmp(name,student[i].name) == 0)
代码修改如下:
#include <string.h>
#include <stdio.h>
struct yhxx
{
char name[5];
char password[5];
}student[5]={{"123","456"},{"567","890"},{"285","368"}};
int main()
{
int i;
char name[5]={0};
char password[5]={0};
scanf("%s",name);
scanf("%s",password);
int flag = 0;
for(i = 0;i<5;i++)
{
if(strcmp(name,student[i].name) == 0)
{
flag = 1;
break;
}
}
if(flag)
{
printf("用户名正确\n");
if(strcmp(password,student[i].password) == 0)
printf("用户以成功登陆!\n");
else
printf("密码错误\n");
}else
printf("用户名错误\n");
return 0;
}