先输入n本书名的名称、定价、作者,编写程序求出这些书的平均价格,并查找输出其中定价最高和最低的书的信息,最后将所有信息按照:“名称:XXX 定价:XXX 作者:XXX ”的格式放在book.txt

先输入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;
}

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值