作业2024/1/22

1.使用多文件编辑,

定义商品信息:商品名称,商品单价,商品购买个数,商品描述,循环输入购买的商品,按单价排序,输出商品信息,计算最贵的商品以及一共花了多少钱?

在create函数,请实现在堆区申请内存5个连续的内存

在input函数,请实现循环输入购买的商品

在bubble函数,请实现按单价排序

在Max函数,计算最贵的商品名称

在Money函数,计算共花了多少钱

在output函数,请实现输出

在free_space函数。实现释放堆区内存

#include <stdio.h>
#include <stdlib.h>
struct goods
{
	char name[10];
	int price;
	int num;
	char describle[100];

};
void  *create(struct goods*a);
void input(int n ,struct goods *a);
int * bubble(int n,int *B);
void MAX(int n,int*B);
void money(int n,int*B);
void output(int n,int*B);
void free_space(int *A);
int main(int argc, const char *argv[])
{
	int n;
	printf("请输入打算购买多少种类的商品:");
	scanf("%d",&n);
	struct goods a[n];
	struct goods *p=a;
	int *A=create(a);	
	int *B=input(n,a);
	bubble(n,p);
	MAX(n,p);
	money(n,B);
	free_space(A);
	return 0;
}
void  *create(struct goods*a)
{
	struct goods *p=(struct goods *)malloc(sizeof(struct goods)*5);
	if(p==NULL)
	{
		return p;
	}

}
void input(int n ,struct goods *p)
{
	for(int i=0;i<n;i++)
	{
		printf("请输入购买商品的名称:");
		scanf("%s",(p+i)->name);
		printf("请输该商品的单价分别为:");
		scanf("%d",&(p+i)->price);
		printf("请输入该商品购买的数量为:");
		scanf("%d",&(p+i)->num);
		printf("该商品的描述:");
		scanf("%s",(p+i)->describle);
	}
}

int * bubble(int n,int *p)
{
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<n-i-1;j++)
		{
		if(*(p+j)>*(p+j+1))
		{
		int t=*(p+j);
		*(p+j)=*(p+j+1);
		*(p+j)=t;
		}
		}
	}
	for(int i=0;i<n;i++)
	{
	printf("%d ",(p+i)->price);
	}

}

void MAX(int n,int*B)
{
	int max=a[0].price;
	for(int i=0;i<n;i++)
	{
		if(max<a[i].price)
		{
		max=a[i].price;
		}
	}
	printf("最贵商品的名称:%s",a[i].name);
}

void money(int n,int*B)
{
  	sum+=((a[i].price)*(a[i].num));

}
void output(int n,int*B)
{
for(int i=0;i<n;i++)
	printf("名称:%s\t单价:%d\t数量:%d\t描述:%s\n",a[i].name,a[i].price,a[i].num,a[i].describle);
}
void free_space(int *A)
{
 free(A);
 A=NULL;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值