请教!有关链表结构问题。
如题,一下代码一个do-while循环的内容,整体代码运行不存在错误,但是在运行当中建立第二个账号、密码时,出现了无法输入账号的问题,请教!#include<stdlib.h>
#include<stdio.h>
#include<string.h>
void UI_Firstinterface(); //定义登录首界面UI
void UI_Userlogin();//定义用户登录界面UI
void UI_Userregister();//定义用户注册界面UI
void UI_Usersignout();//定义用户登出界面UI
struct USER//定义结构体用户信息
{
char account[10];
char password[10];
int money;
struct USER*next;
};
main()
{
//////////////////////////////////////////////////////////////////////////////////////////
struct USER *head,*p,*q,*t;
head=(struct USER*)malloc(sizeof(struct USER));
head->next=NULL;
p=head;
//////////////////////////////////////////////////////////////////////////////////////////
int i;
long count;//计算字符数量
char account_1[10];//定义用户账号赋值项,把值赋值给结构体用户信息中的用户账号
char password_1[10];//定义用户密码赋值项 ,把值赋值给结构体用户信息中的用户账密码
char a[1]="";//定义数组为空为选择项
system("COLOR 0E");
UI_Firstinterface();//调用UI
printf("请选择(友情提示:请输入有效序号选项):");
gets(a);
if(a[0]!='1'&&a[0]!='2'&&a[0]!='3')
{
if(a[0]=='4')
{
}
system("CLS");
printf("\a");
printf("您输入的序号无效!");
system("PAUSE");
system("CLS");
main();
}
switch(a[0])
{
case '1' :
system("CLS");
UI_Userlogin();//调用登录首界面UI
//==============================================
//==============================================
system("PAUSE");
break;
case '2' :
system("CLS");
UI_Userregister();//调用用户注册界面UI
//==============================================
printf("是否已经阅读完整条款? 1-阅读 0-返回\n");
gets(a);
if(a[0]!='1'&&a[0]!='2'&&a[0]!='3')
{
system("CLS");
printf("\a");
printf("您输入的序号无效!");
system("PAUSE");
system("CLS");
main();
}
if(a[0]=='4')
{
main();
}
printf("请确保周围安全,防止账号被他人窃取。\n");
printf("\n");
do{
printf("新账号: ");
gets(account_1);
printf("设置密码:");
gets(password_1);
count=strlen(account_1);
if(count>10)
{
printf("\a");
system("CLS");
printf("账号设置不符合要求!\n");
system("PAUSE");
system("CLS");
main();
}
count=strlen(password_1);
if(count>10)
{
printf("\a");
system("CLS");
printf("账号设置不符合要求!\n");
system("PAUSE");
system("CLS");
main();
}
q=(struct USER*)malloc(sizeof(struct USER));
p->next=q;
p=q;
strcpy(q->account,account_1);
strcpy(q->password,password_1);
q->next=NULL;
for(i=0;i<=10;i++)
{
account_1[i]=' ';
password_1[i]=' ';
}
printf("\n");
printf("设置成功! ");
printf("是否退出? 0-退出\n");
scanf("%d",&i);
}while(i);
//===============================临时验证区
for(p=head->next;p!=NULL;p=p->next)
{
printf("账号:");
puts(q->account);
printf("密码:");
puts(q->password);
printf("\n");
}
//================================
//==============================================
break;
case '3' :
system("CLS");
UI_Usersignout();//调用用户登出界面UI
//==============================================
//==============================================
system("PAUSE");
break;
}
system("PAUSE");
return 0;
}
void UI_Firstinterface()//登录首界面UI
{
printf("===============================================\n");
printf("== 银行管理系统 ==\n");
printf("== V0.0.1 by zwp ==\n");
printf("===============================================\n");
printf("== 1.用户登录 ==\n");
printf("== 2.用户注册 ==\n");
printf("== 3.退出 ==\n");
printf("===============================================\n");
}
void UI_Userlogin()//用户登录界面UI
{
printf("===============================================\n");
printf("== 用户登录 ==\n");
printf("== (输入-1返回主界面) ==\n");
printf("===============================================\n");
}
void UI_Userregister()//用户注册界面UI
{
printf("===============================================\n");
printf("== 用户注册 ==\n");
printf("== (输入-1返回主界面) ==\n");
printf("===============================================\n");
printf("== ==\n");
printf("== 要求:账号、密码请输入限制于十位字符内。 ==\n");
printf("== ==\n");
printf("===============================================\n");
}
void UI_Usersignout()//用户登出界面UI
{
printf("===============================================\n");
printf("== 用户登出 ==\n");
printf("== 登出成功!!! ==\n");
printf("===============================================\n");
}