为什么点了一次添加图书Y之后,不管点Y还是N都跳不出while函数啊,求解?

head=addbook(head);
printf("添加成功!\n");
printf("是否继续添加新图书(y/n)\n");
scanf("%c",&j[0]);
if(j[0]=='y')
k=1;
while(k!=0)
{
head=addbook(head);
printf("添加成功!\n");
printf("是否继续添加新图书(y/n)\n");
scanf("%c",&j[i]);
i++;
if(j[i]=='n')
k=0;
}
int i=1;

慕标5832272
浏览 65回答 2
2回答

郎朗坤

因为在scanf("%c",&j[i]);之后你又将i++;这时j[i]中的值就不是你输入的值,再用if(j[i]=='n')判断,当然有问题

绝地无双

因为scanf("%c", &j[i]);接收了回车换行符号.使用fflush(stdin);清除键盘缓冲区。
打开App,查看更多内容
随时随地看视频慕课网APP