在 lendout 函数里有一个卡号,本人希望在重复调用这个函数时卡号可以递增,可是它为什么不呢?希望哪位高手能帮我解决,谢谢!!
#include
int i=0;
struct book
{
char name[30];
int squence;
int count;
}bk[2];
struct member
{
int cardid;
int password;
char name[20];
char address[60];
char phone[13];
}mb[2];
void input(struct book bk[])
{
int k;
for(k=0;k<2;k++)
{
printf("请输入序号为%d的书的名字:",k+1);
fflush(stdin);
gets(bk[k].name);
printf("请输入该书的数量:");
fflush(stdin);
scanf("%d",&bk[k].count);
bk[k].squence=k+1;
}
}
void lendout(struct book bk[],struct member mb[],int *i)
{
int j,cardid,password,squence;
char ch;
printf("会员?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
{
printf("请输入您的卡号:");
fflush(stdin);
scanf("%d",&cardid);
printf("请输入您的密码:");
fflush(stdin);
scanf("%d",&password);
for(j=0;j<5;j++)
{
if(cardid==mb[j].cardid)
{
if(password==mb[j].password)
{
printf("\n\n\n\n密码正确!!您可以借书了。\n");
printf("\n请输入书的序号:");
scanf("%d",&squence);
for(int k=0;k<5;k++)
{
if(bk[k].squence==squence)
{
printf("\t\t\t书名\t\t数量\n");
printf("\t\t\t%s\t\t%d",bk[k].name,bk[k].count);
bk[k].count--;
}
}
}
else
{
printf("密码错误!!!\n\n");
break;
}
}
}
}
else
{
printf("注册成为会员\n");
fflush(stdin);
printf("请输入您的姓名:");
fflush(stdin);
gets(mb[*i].name);
printf("请输入您的地址:");
fflush(stdin);
gets(mb[*i].address);
printf("请输入您的电话号码:");
fflush(stdin);
gets(mb[*i].phone);
printf("请您输入密码:");
fflush(stdin);
scanf("%d",&mb[*i].password);
mb[*i].cardid=*i+1;
printf("\n\n\n\n\n恭喜您!!您已成功注册成为会员!您的卡号为:%d",mb[*i].cardid);
printf("\n您的密码为:%d\n\n\n",mb[*i].password);
*i++;
}
}
void main()
{
int ch;
struct book ;
struct member;
do
{
printf("\n1.添加图书\n");
printf("2.借书\n");
printf("3.退出\n");
printf("请选择:");
scanf("%d",&ch);
switch(ch)
{
case 1:input(bk);break;
case 2:lendout(bk,mb,&i);break;
case 3:ch=0;break;
printf("\n\n");
}
}while(ch!=0);
}
--------------------next---------------------
阅读(1133) | 评论(0) | 转发(0) |