华清远见作业第十三天

1.使用多文件编辑,
定义商品信息:商品名称,商品单价,商品购买个数,商品描述,循环输入购买的商品,按单价排序,输出商品信息,计算最贵的商品以及一共花了多少钱?
在create函数,请实现在堆区申请内存5个连续的内存在input函数,请实现循环输入购买的商品
在bubble函数,请实现按单价排序
在Max函数,计算最贵的商品名称在Money函数,计算共花了多少钱在output函数,请实现输出
在free_space函数。实现释放堆区内存
代码:

head.h


#ifndef __HEAD_H_
#define __HEAD_H_#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define X 5
struct store
{char name[20];int price;int num;char message[100];
};
//申请内存
struct store *create();
//循环输入
void input(struct store *p);
//循环输出
void output(struct store *p);
//单价排序
void bubble(struct store *p);
//找最贵的的商品
void Max(struct store *p);
//计算花了多少钱
void Money(struct store *p);
//释放内存
struct store *free_space(struct store *p);#endif

test.c

#include "head.h"//申请内存
struct store *create()
{struct store *p=(struct store *)malloc(sizeof(struct store)*X);if(NULL==p){return NULL;}return p;
}
//循环输出
void output(struct store *p)
{for(int i=0;i<X;i++){printf("\t输出商品信息\n");printf("商品名称\t商品单价\t商品购买个数\t商品描述\n");printf("%s\t%d\t%d\t%s\n",(p+i)->name,(p+i)->price,(p+i)->num,(p+i)->message);}
}
//循环输入
void input(struct store *p)
{for(int i=0;i<X;i++){printf("\t请输入商品信息\n");printf("请输入商品名称:");scanf("%s",(p+i)->name);printf("请输入商品单价:");scanf("%d",&(p+i)->price);printf("请输入商品购买个数:");scanf("%d",&(p+i)->num);printf("请输入商品描述:");scanf("%s",(p+i)->message);}
}
//释放内存
struct store *free_space(struct store *p)
{if(NULL==p){return NULL;}free(p);p=NULL;return p;
}
//单价排序void bubble(struct store *p)
{for(int i=1;i<X;i++){for(int j=0;j<(X-i);j++)	{if( ((p+j)->price) < ((p+j+1)->price) ){struct store t=*(p+j+1);*(p+j+1)=*(p+j);*(p+j)=t;}	}}output(p);}
//找最贵的的商品
void Max(struct store *p)
{int max=p->price;int num=0;for(int i=0;i<X;i++){if(max< ((p+i)->price) ){max=((p+i)->price);num=i;}}printf("最贵的商品是%s\n",((p+num)->name) );
}
//计算花了多少钱
void Money(struct store *p)
{int sum=0;for(int i=0;i<X;i++){sum+=((p+i)->price)*((p+i)->num);}printf("总共花费=%d\n",sum);
}

main.c 

#include "head.h"int main(int argc, const char *argv[])
{//申请空间struct store *p=create();//循环输入input(p);//循环输出printf("\t循环输出\n");output(p);printf("\t找最贵的商品\n");Max(p);printf("\t排序\n");//商品降序排列bubble(p);printf("\t计算总共花费\n");Money(p);//释放内存p=free_space(p);return 0;
}

运行效果:

 

 思维导图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/288742.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【科技前沿】数字孪生技术改革智慧供热,换热站3D可视化引领未来

换热站作为供热系统不可或缺的一部分&#xff0c;其能源消耗对城市环保至关重要。在双碳目标下&#xff0c;供热企业可通过搭建智慧供热系统&#xff0c;实现供热方式的低碳、高效、智能化&#xff0c;从而减少碳排放和能源浪费。通过应用物联网、大数据等高新技术&#xff0c;…

C : DS二叉排序树之删除

Description 给出一个数据序列&#xff0c;建立二叉排序树&#xff0c;并实现删除功能 对二叉排序树进行中序遍历&#xff0c;可以得到有序的数据序列 Input 第一行输入t&#xff0c;表示有t个数据序列 第二行输入n&#xff0c;表示首个序列包含n个数据 第三行输入n个数据…

vue-springboot-java电力员工安全施工培训课程考试管理系统

本电力员工安全施工培训管理系统是为了提高员工查阅信息的效率和管理人员管理信息的工作效率&#xff0c;可以快速存储大量数据&#xff0c;还有信息检索功能&#xff0c;这大大的满足了员工和管理员这二者的需求。操作简单易懂&#xff0c;合理分析各个模块的功能&#xff0c;…

Ubuntu 常用命令之 zip 命令用法介绍

Ubuntu系统下的zip命令是用来压缩文件的。这个命令可以将一个或多个文件或者目录压缩成一个.zip文件&#xff0c;也可以将整个目录树压缩成一个.zip文件。 zip命令的基本格式 zip [选项] [压缩文件名] [要压缩的文件或目录...]zip命令的主要参数有 -r&#xff1a;递归压缩&a…

2023年12月20日雄县采样

刚去的时候&#xff0c;找不着冬小麦地&#xff0c;因为积雪太厚了&#xff0c;小麦都被埋住了。 翻了几波地失败了几个点&#xff0c;也渐渐得出经验了&#xff0c;像下图这种有田垄的大块连成片农田&#xff0c;“高标准”农田。一定是种植小麦的。 刨开土能看到小麦就和挖到…

C语言——内存函数的使用与模拟实现

大家好&#xff0c;我是残念&#xff0c;希望在你看完之后&#xff0c;能对你有所帮助&#xff0c;有什么不足请指正&#xff01;共同学习交流 本文由&#xff1a;残念ing 原创CSDN首发&#xff0c;如需要转载请通知 个人主页&#xff1a;残念ing-CSDN博客&#xff0c;欢迎各位…

暴雨AI服务器:推动大模型算力底座发展

语言大模型作为人工智能领域的重要分支&#xff0c;其强大的自然语言处理能力和模仿人类的对话决策能力&#xff0c;正逐渐成为人们的关注焦点。近日&#xff0c;据央视新闻报道&#xff0c;工业和信息化部赛迪研究院数据显示&#xff0c;今年我国语言大模型市场规模实现较快提…

25 在Vue3中使用生命周期函数

概述 Vue 组件生命周期事件发生在组件从创建到删除的生命周期中。必要时&#xff0c;我们可以在组件生命周期的每个阶段添加回调和副作用。 组件事件触发顺序 setup 该事件在所有其他钩子&#xff08;包括 beforeCreate&#xff09;之前运行。它无法访问此实例&#xff0c;…

一步步教你创建酒店预订小程序

如果你想为你的酒店或旅馆创建一个预订小程序&#xff0c;这篇文章将为你提供详细的步骤和指南。我们将按照以下顺序进行&#xff1a; 一、进入乔拓云网后台 首先&#xff0c;打开乔拓云网的官方网站&#xff0c;点击右上角的“登录”按钮&#xff0c;登录成功后&#xff0c;点…

【Docker】基础篇

文章目录 Docker为什么出现容器和虚拟机关于虚拟机关于Docker二者区别&#xff1a; Docker的基本组成相关概念-镜像&#xff0c;容器&#xff0c;仓库安装Docker卸载docker阿里云镜像加速docker run的原理**为什么容器比虚拟机快**Docker的常用命令1.帮助命令2.镜像相关命令3.容…

FIO测试参数与linux内核IO栈的关联分析-part1

一、Linux IO栈 一个常见Linux IO处理流程示意图如下&#xff1a; 这个示意图主要描述了Linux系统中I/O请求的处理流程&#xff0c;涉及了I/O接口、文件系统、块层、NVMe驱动等多个部分&#xff0c;整个IO流程处理主要概括以下步骤&#xff1a; 1. 应用程序&#xff08;Appli…

字符串函数内存函数(从零到一)【C语言】

长度不受限制的字符串函数&#xff1a;strcpy,strcat,strcmp 长度受限制的字符串函数&#xff1a;strncpy,strncat,strncmp strlen strlen函数是库函数中我们最常使用的函数&#xff0c;它可以求出字符串的长度(不包含‘\0’) 使用方法 通过前面对strlen函数的模拟实现我们知…