改几个代码会出现死循环,绝望+10086
这是统计功能的代码。
#include "record.h"
BOOK *stastic(BOOK *top)
{
BOOK *p;
int num=0,cnum=0,znum=0,i;
char str[2];
int cn=0;
char cname[][10]={"北京出版社","上海出版社","青海出版社","武汉出版社","广州出版社","长春出版社"};
char zname[][6]={"韩寒","陈新宏","马健会","郭涛","刘艺","冰心"};
p=top;
for(;; )
{
if(count==0)
{
printf("现在系统还没有书籍信息!\n");
return(top);
}
printf("请输入统计的方式:\n");
printf("1.按出版社\n");
printf("2.按主编\n");
gets(str);
while(1)
{
cn = atoi(str);
if(cn<1|| cn>2 )
{
printf("\n输入错误,重选1-2:");
gets(str);
}
else break;
}
while(p)
{
if(cn==1){
num++;
for(i=0;i<7;i++){
if(strcmp(p->Publisher,cname[i]))
cnum++;
p=p->next;
}
printf("系统共有");
printf("%d",num);
printf("本书。\n");
printf("%c",p->Publisher);
printf("共出版");
printf("%d",cnum);
printf("本书。");
}
/* capart[10]; //用于统计的数组
p=head;
while(p!=NULL){
for(i=0;i
//在现有数组节点中能找到,则数量+1
}
//如果找不到,数组节点增+1,数量=1
p=p->next;
}
*/
else
{
num++;
for(i=0;i
{
if(strcmp(p->Editor,zname[i]))
znum++;
p=p->next;
}
printf("系统共有");
printf("%d",num);
printf("本书。\n");
printf("%c",p->Editor);
printf("共主编");
printf("%d",znum);
printf("本书。");
}
break;
}
return top;
}}
麻烦各位大神了!!