先输入n本书名的名称、定价、作者,编写程序求出这些书的平均价格,并查找输出其中定价最高和最低的书的信息,最后将所有信息按照:“名称:XXX 定价:XXX 作者:XXX ”的格式放在book.txt
思考:
1.创建一个结构体,存放数据
struct B
{
char name[50];//书名
char zz[20];//作者
int jg;//价格
};
2.输入书名、价格、作者等数据,求出平均值
struct B b[N] = { 0 };
int i = 0;
int sum = 0;
int pj = 0;//平均值
for (i = 0; i < N; i++)
{
printf("请输入书名、价格、作者:");
scanf("%s %d %s", b[i].name, &b[i].jg,b[i].zz);
sum += b[i].jg;
}
pj = sum / N;
printf("平均价格是:%d\n", pj);
3. 找出最贵的书和最便宜的书
int max = 0;
int min = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < N; i++)
{
if (b[max].jg < b[i].jg)
max = i;
if (b[min].jg > b[i].jg)
min = i;
}
printf("最高价格的书:%s %s %d\n", b[max].name, b[max].zz, b[max].jg);
printf("最低价格的书:%s %s %d\n", b[min].name, b[min].zz, b[min].jg);
4.输入数据到book.txt中
FILE* pf = fopen("book.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
for (i = 0; i < N; i++)
{
fprintf(pf, "名称:%s 定价:%d 作者:%s \n", b[i].name, b[i].jg, b[i].zz);
}
fclose(pf);
pf = NULL;
思考完毕,开始敲代码啦:
//先输入n本书名的名称、定价、作者,编写程序求出这些书的平均价格,并查找输出其中定价最高和最低的书的信息
//最后将所有信息按照:“名称:XXX 定价:XXX 作者:XXX ”的格式放在book.txt中
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define N 3
struct B
{
char name[50];//书名
char zz[20];//作者
int jg;//价格
};
int main()
{
struct B b[N] = { 0 };
int i = 0;
int sum = 0;
int pj = 0;//平均值
for (i = 0; i < N; i++)
{
printf("请输入书名、价格、作者:");
scanf("%s %d %s", b[i].name, &b[i].jg,b[i].zz);
sum += b[i].jg;
}
pj = sum / N;
printf("平均价格是:%d\n", pj);
int max = 0;
int min = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < N; i++)
{
if (b[max].jg < b[i].jg)
max = i;
if (b[min].jg > b[i].jg)
min = i;
}
printf("最高价格的书:%s %s %d\n", b[max].name, b[max].zz, b[max].jg);
printf("最低价格的书:%s %s %d\n", b[min].name, b[min].zz, b[min].jg);
FILE* pf = fopen("book.txt", "w");
if (pf == NULL)
{
perror("fopen");
return 1;
}
for (i = 0; i < N; i++)
{
fprintf(pf, "名称:%s 定价:%d 作者:%s \n", b[i].name, b[i].jg, b[i].zz);
}
fclose(pf);
pf = NULL;
return 0;
}
输出结果: