c语言自动售货机

C语言编写的自动售货机程序可以模拟真实自动售货机的基本功能,例如选择商品、显示价格、付款和找零。下面是一个简单的示例代码,展示了一个基本的自动售货机程序:

#include <stdio.h>// 商品结构体
typedef struct {char name[30];int price;
} Product;// 函数声明
void showMenu(Product products[], int size);
void purchase(Product products[], int size);int main() {// 商品列表Product products[] = {{"可乐", 3},{"雪碧", 3},{"巧克力", 5},{"薯片", 4},{"饼干", 2}};int size = sizeof(products) / sizeof(products[0]);// 显示菜单并购买商品showMenu(products, size);purchase(products, size);return 0;
}// 显示菜单
void showMenu(Product products[], int size) {printf("欢迎使用自动售货机!\n");for (int i = 0; i < size; i++) {printf("%d. %s - 价格: %d元\n", i + 1, products[i].name, products[i].price);}
}// 购买商品
void purchase(Product products[], int size) {int choice, paid, change;printf("请选择您要购买的商品编号:");scanf("%d", &choice);if (choice >= 1 && choice <= size) {printf("您选择了%s,价格为%d元。\n", products[choice - 1].name, products[choice - 1].price);printf("请投入足够的金额:");scanf("%d", &paid);if (paid >= products[choice - 1].price) {change = paid - products[choice - 1].price;printf("找零:%d元\n", change);printf("感谢您的购买,商品正在出货...\n");} else {printf("投入金额不足,无法购买。\n");}} else {printf("选择错误,请输入有效的商品编号。\n");}
}

这个程序首先定义了一个Product结构体来存储商品的名称和价格。然后,定义了一个商品数组products,并在main函数中调用showMenupurchase函数。showMenu函数显示所有商品及其价格,而purchase函数允许用户选择商品并进行购买,包括付款和找零。

请注意,这个示例程序是基于控制台的,并没有实现自动售货机的物理交互,如硬币识别和商品分发。此外,程序没有实现错误处理和更复杂的用户交互,这些在实际应用中是必要的。

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

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

相关文章

破解对LabVIEW的偏见

LabVIEW被广泛应用于科学研究、工程测试和自动化控制领域&#xff0c;具有专业性和高效的开发能力。尽管有人对其存在偏见&#xff0c;认为不如C语言&#xff0c;但LabVIEW的图形化编程、强大集成能力、丰富社区支持和专业功能&#xff0c;使其在许多实际应用中表现出色。通过多…

Go语言环境安装

Go下载地址 哪个能用用哪个。 https://go.dev/ https://golang.google.cn/&#xff08;Golang官网的官方镜像&#xff09; Windows 使用.msi安装包安装 下载msi文件 安装 双击运行go1.22.4.windows-amd64.msi Next 勾选I accept the terms in the License Agreement&…

收藏 | SSL证书无效的原因和解决办法

当浏览器访问一个使用SSL证书保护的网站时&#xff0c;会检查其证书的有效性。如果发现证书存在问题&#xff0c;浏览器会显示“SSL证书无效”的警告信息&#xff0c;提醒用户存在潜在的安全风险。 “SSL证书无效”的警告可能会导致用户离开站点&#xff08;并且永远不会返回&…

MySQL高级-SQL优化-小结

文章目录 1、insert 优化2、主键优化3、order by 优化4、group by 优化5、limit 优化6、count 优化7、update 优化 1、insert 优化 insert&#xff1a;批量插入、手动控制事务、主键顺序插入 大批量插入&#xff1a;load data local infile 2、主键优化 主键长度尽量短、顺序插…

系统漏洞复现与勒索病毒

知识点&#xff1a;SMB漏洞介绍、漏洞复现流程、勒索病毒攻击与防护 渗透测试相关&#xff1a; 基本概念&#xff1a; 渗透测试就是利用我们所掌握的渗透知识&#xff0c;对网站进行一步一步的渗透&#xff0c;发现其中存在的漏洞和隐藏的风险&#xff0c;然后撰写一篇测试报…

FastAPI教程I

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 第一步 import uvicorn from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}if __name__ __main__:uvicorn.run(&quo…

GPT-4o模型到底有多强

近年来&#xff0c;人工智能技术突飞猛进&#xff0c;在自然语言处理&#xff08;NLP&#xff09;和计算机视觉等领域取得了令人瞩目的成就。OpenAI推出的GPT-4o模型作为最新一代的语言模型&#xff0c;进一步提升了AI的能力&#xff0c;尤其在文档分析、识图生文、文生图等功能…

elementUI的搭建使用过程

Element - The worlds most popular Vue UI framework 上面是elementUI的网站,进入网站 点击右上角的组件按钮 复制这段代码到你的项目终端:npm i element-ui -S 加载完成后即可使用elementUI网站中的组件,使用它们只需要复制组件下面的代码即可

Unity UGUI 实现简单两点连线功能

实现 记录鼠标点击位置为线段起点。 posStart Input.mousePosition; 创建一个Image 作为线段。 line new GameObject("line"); rtLine line.AddComponent<RectTransform>(); rtLine.pivot new Vector2(0, 0.5f); rtLine.localScale Vector3.one; img…

Linux 进程通信

1.什么是进程通信&#xff1f; 答&#xff1a;两个或多个进程实现数据层面的交互&#xff1b;但是因为进程的独立性&#xff0c;导致进程通信的成本较高&#xff1b; 2.为什么要通信&#xff1f; 答&#xff1a;多进程之间由协同的需求&#xff0c;所以通信&#xff1b;以下…

Java常用对象的快速初始化

在Java中&#xff0c;有多种方式来快速初始化各种常用对象&#xff0c;如字符串数组&#xff08;String[]&#xff09;&#xff0c;集合列表&#xff08;List&#xff09;&#xff0c;映射表&#xff08;Map&#xff09;&#xff0c;以及集合&#xff08;Set&#xff09;。不同…

动态服务管理的艺术:Eureka在服务扩展与收缩中的策略

动态服务管理的艺术&#xff1a;Eureka在服务扩展与收缩中的策略 在微服务架构中&#xff0c;服务的动态扩展和收缩是实现高可用性和弹性的关键。Eureka&#xff0c;作为Netflix开源的服务发现框架&#xff0c;提供了一套机制来处理服务实例的动态变化。本文将深入探讨Eureka如…

在操作系统中,background通常指的是运行于后台的进程或任务

在计算机中&#xff0c;"background"一词具有多种含义&#xff0c;以下是一些主要的解释和相关信息&#xff1a; 计算机视觉中的背景&#xff08;Background&#xff09;&#xff1a; 在计算机视觉中&#xff0c;background指的是图像或视频中的背景部分&#xff0c;…

[code snippet] 生成随机大文件

[code snippet] 生成随机大文件 一个无聊的测试代码&#xff0c;因为要测试大文件的网络传输&#xff0c;就写了一个随机大文件生成脚本&#xff0c;做个备份。 基本上都是 GPT 生成的&#xff0c;哈哈。 C# 代码 namespace ConsolePlayground;internal class BigFileGenera…

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17&#xff0c;发现一个以前的页面突然闪退了。原来是IOS17下&#xff0c;这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除&#xff0c;原参数如果size为0的话&#xff0c;会出现闪退现象。 根据说明&#xff0c;上述方法已经被替换…

【shell脚本速成】python安装脚本

文章目录 案例需求应用场景解决问题脚本思路案例代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都沐…

React 中 useEffect

React 中 useEffect 是副作用函数&#xff0c;副作用函数通常是处理外围系统交互的逻辑。那么 useEffect 是怎处理的呢&#xff1f;React 组件都是纯函数&#xff0c;需要将副作用的逻辑通过副作用函数抽离出去&#xff0c;也就是副作用函数是不影响函数组件的返回值的。例如&a…

vue中如何使用echarts和echarts-gl实现三维折线图

一、vue中使用三维折线图 效果图&#xff1a; 二、使用步骤 1.引入库 安装echarts 在package.json文件中添加 "dependencies": {"echarts": "^5.1.2""echarts-gl": "^1.1.1",// "echarts-gl": "^2.0.8…

5G超宽,远程诊疗带来优质就医体验

上篇&#xff08;5G与4G的区别-CSDN博客&#xff09;讲了4G与5G的区别&#xff0c;大家可以看到5G 具备高带宽、低时延的特性&#xff0c;可以广泛应用在各种物联网场景下。 今天和大家简单聊聊5G远程诊疗。 远程诊疗是一种利用信息通信技术为患者提供医疗服务的方式。它允许…

掌握PoE交换机的潜力:全面的以太网供电连接手册

在数字化日益成为我们生活和工作核心的今天&#xff0c;一个稳固且效率高的网络基础架构对于个人和企业来说是不可或缺的。PoE&#xff08;以太网供电&#xff09;交换机作为一种创新技术&#xff0c;通过单一的网络线缆同时传递数据和电源&#xff0c;对于增强网络的性能起着关…