需要统计图书信息
我的思路是按出版社、书名、主编分别进行统计
有一个选择选项
给出所有的出版社、书名、主编
for循环
找到就加一
然后运行不了
实践好难..
#include "record.h"
BOOK stastic(BOOK *top)
{
BOOK *p;
int num=0,cnum=0,znum=0,snum=0,i;
char str[2];
int cn=0;
char cname[][10]={"北京出版社","上海出版社","青海出版社","武汉出版社","广州出版社","长春出版社"};
char zname[][6]={"韩寒","陈新宏","马健会","郭涛","刘艺","冰心"};
char sname[][8]={"one一个","管理学","概率论","线性代数","资本论","繁星春水"};
p=top;
while(1)
{
printf("请输入统计的方式:\n");
printf("1.按出版社\n");
printf("2.按主编\n");
printf("3.按书名\n");
}
gets(str);
while(1)
{
cn = atoi(str);
if(cn<1|| cn>3 )
{
printf("\n输入错误,重选1-3:");
gets(str);
}
else break;
}
while(p)
{
switch(cn)
{
case 1: num++;
for(i=0;i<7;i++)
{
if(strcmp(p->Publisher,cname[i]))
{ cnum++;
printf("%c共出版%d本书",p->Publisher,cnum);
}
else i++;
cnum=0;
p=p->next;
}
break;
/* capart[10]; //用于统计的数组
p=head;
while(p!=NULL){
for(i=0;i //在现有数组节点中能找到,则数量+1
}
//如果找不到,数组节点增+1,数量=1
p=p->next;
}
*/}
case 2: num++;
for(i=0;i {
if(strcmp(p->Editor,zname[i]))
{ znum++;
printf("%c共主编%d本书",p->Editor,znum);
}
else i++;
znum=0;
p=p->next;
}
break;
case 3: num++;
for(i=0;i<7;i++)
{
if(strcmp(p->BookName,sname[i]))
{ snum++;
printf("图书馆有书名为“%c”%d本书",p->BookName,snum);
}
else i++;
snum=0;
p=p->next;
}
break;
}}
return(top);
}