是一个关于图书管理系统的实验设计
这是前面的函数声明
typedef struct book /定义/
{
char shuming[20];
char zuozhe[20];
char shuhao[20];
char riqi[20];
char danwei[20];
char price[20];
struct booknext;
}booklist,
pointer;
int n=0;
pointer head=NULL;
booklist pjprice[100];
int menu();
void insert(pointerhead);
void scan(pointer head);
void add(pointerhead) ;
void shumingshanchu(pointer head);
void shuhaoshanchu(pointer head);
void xiugai(pointer head);
void search_shuming(pointer head);
void search_shuhao(pointer head);
void paixu_price(pointerhead);
void paixu_riqi(pointerhead);
void sumave(booklist pjprice[],int n);
这是功能11
void sumave(booklist pjprice[],int n)
{
int i,sum=0;
float ave;
for(i=0; pjprice[i].price; i++)
{
sum+=atof(pjprice[i].price);
}
ave=(float)sum/n;
printf("%d图书价格总和为::%d\n",i,sum);
printf("%d图书平均价格为:%.2f\n",i,ave);
system("pause");
}
没有报错,但无法运行功能11
for(i=0; pjprice[i].price; i++)
改为
for(i=0; i<n; i++)
(1)for循环的第二个条件不对
(2)sum改成float类型,否则在for循环中计算的时候会损失数据
代码修改如下:
void sumave(booklist pjprice[], int n)
{
int i;
float sum = 0;
float ave;
for (i = 0; i<n; i++)
{
sum += atof(pjprice[i].price);
}
ave = sum / n;
printf("%d图书价格总和为:%.2f\n", i, sum);
printf("%d图书平均价格为:%.2f\n", i, ave);
system("pause");
}
你的结构体中price为什么要用char数组呢,直接用float多省事啊
void sumave(booklist pjprice[], int n)
{
float sum = 0;
for (int i = 0; i < n; i++)
sum += atof(pjprice[i].price);
float ave = sum / n;
printf("%d图书价格总和为: %.2f\n", sum);
printf("%d图书平均价格为: %.2f\n", ave);
}
(1)for循环的第二个条件不对
(2)sum改成float类型,否则在for循环中计算的时候会损失数据
1、for循环这样写,
for (int i = 0; i < n; i++)
2、sum改成float类型,否则在for循环中计算的时候会损失数据