关于用C语言描述数据结构的问题

struct list_record check_code(struct list_record r[],char acc[],char c[])
{
int i;
struct list_record a;
strcpy(a.account,"0");
strcpy(a.code,"0");
a.rec_len=0;
for(i=0;i<a.rec_len;i++)
{
strcpy(a.rec[i].date,"0");
strcpy(a.rec[i].operate,"0");
a.rec[i].num=0;
}
for(i=0;i<3;i++)
if(strcmp(r[i].account,acc)==0)
if(strcmp(r[i].code,c)==0)
return r[i];
printf("密码错误,请重新输入!\n");
return a;
}

这段代码有问题 是一个自定义函数 用于检测密码真确性的当输入密码是错误时候 提示的“密码错误,请重新输入!” 出现两次 并且输入了错误的一次密码 再输入一次正确的密码还是不能进入系统 求大神指点

a.rec_len=0; // 这里有问题。
for(i=0;i<a.rec_len;i++) //由于你上面给了0值,所以,这段循环不会执行。因此,你下面的工作无法实现
{
strcpy(a.rec[i].date,"0");
strcpy(a.rec[i].operate,"0");
a.rec[i].num=0;
}
你直接给记录长度给了0值,那么无论你输入什么东西,都不会进行问题行下面的那个循环。
请看看是否如此,希望能采纳。追问

那应该怎么改的?? 大神 求解

温馨提示:答案为网友推荐,仅供参考
相似回答