C语言实现【程序设计与实践】实验三:自动售货机

声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

附上c++版http://t.csdnimg.cn/BbDSL

https://blog.csdn.net/As_sBomb/article/details/105485940

实验三:自动售货机

题目:

图所示为简易自动售货机,物品架1、2上共有10样商品,按顺序进行编号分别为1~10,标有价格与名称,如下图:

1.售货机物品架上共有10样商品依次编号1-10,标有名称与价格。
2.售货机接受1/2/5/10面值的硬/纸币,用户可以一次性投入多个硬币并选择多种商品,售货机将一次性将商品输出并找零。
3.投入钱币和选择商品皆以-1作为结束,若输入商品编号超出范围或余额不足将自动结束购物,输出购买商品,钱币总额和找零。
输入不需要空格,10请输入’0’,-1请输入’-’

输入输出示例:

输入:
1 1 2 2 5 5 10 10 -1 /钱币序列/
1 2 3 5 1 6 9 10 -1 /商品编号/

输出:
Total:36yuan, change:19 yuan
Table-water1:2
Table-water2:1
Table-water3:1
Milk:1
Beer:1
Oolong-Tea:1
Green-Tea:1

#include "stdio.h" #include "stdlib.h"
int main() 
{ printf("                     程序设计与实践        实验(三) 自动售货机\n");printf("\n");printf("      	    自动售货机简介\n"); printf("     =============================                  \n");printf("\n     1.售货机物品架上共有10样商品依次编号1~10,标有名称与价格。\n");printf("     2.售货机可以一次性投入多个硬币并选择多种商品,售货机将一次性将商品输出并找零。\n");printf("     3.用户输入钱钱币值序列,钱币值序列——对应商品序列号,分别以-1作为结束\n");printf("\n");printf("1.---Table.water-----1元\n");printf("2.---Table.water-----1元\n");printf("3.---Table.water-----1元\n");printf("4.----Coca.Cola------2元\n");printf("5.------Milk---------2元\n");printf("6.------Beer---------3元\n");printf("7.---Orange.Juice----3元\n");printf("8.-----Sprite--------3元\n");printf("9.----Ooiong.Tea-----4元\n");printf("10.----Green.Tea-----4元\n");printf("\n");	char 	*productname[10]={"Table-water",  "Table-water",  "Table-water",  "Coca-Cola", 
"Milk","Beer", "Orange-Juice", "Sprite", "Oolong-Tea", "Green-Tea"};/*定义指针数组,其中每个元数都是
一个字符指针,分别指向各商品名称*/ int price[2][10]={{1,1,1,2,2,3,3,3,4,4},{}}; /*各商品对应的价格*/ //static int countp[10]; //采用二维数组,这行没用了 int income,outcome,change,i,x;// *p=price,income=outcome=change=i=x=0;/*钱币序列求和*/ printf("Please enter a coin sequence:");do{scanf("%d",&x);if(x>0)income+=x;} while(x!=-1);//输入商品序列号printf("Please enter a goods sequence:");do{scanf("%d",&x);if(x>10) {printf("编号超出范围,结束购物。");printf("\nTotal:%dyuan,\nchange:%dyuan\n",income,income);exit(0);}if(x>0){price[1][x-1]++;}}while(x!=-1);//计算商品金额
for(i=0;i<10;i++) {
outcome+=price[0][i]*price[1][i];if(outcome>income){ printf("余额不足,结束购物。");printf("\nTotal:%dyuan,\nchange:%dyuan\n",income,income);exit(0);	} 
}
/*输出总金额,应找回的金额*/
change= income-outcome;
printf("\nTotal:%dyuan,\nchange:%dyuan\n",income,change); 
//输出找零序列
printf("Your change sequence:");
while(change!=0){if (change>10){printf("10 ");change-=10;continue;}else if (change>=5 && change<10){printf("5 ");change-=5;continue;}else if (change>=2 && change<5){printf("2 ");change-=2;continue;}else {printf("1");change-=1;}
}
printf("\n");
/*输出物品名称与数量*/  for(i=0;i<10;i++) { if(price[1][i]>0) printf("%s:%d \n",productname[i],price[1][i]);}
}

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

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

相关文章

孩子很内向,是不是自闭症?

作为星启帆寄宿制自闭症学校的老师&#xff0c;我深知内向与自闭症之间存在着本质的区别&#xff0c;尽管两者在社交表现上可能有一定的相似性。 首先&#xff0c;内向是一种性格特质&#xff0c;表现为个体在社交场合中相对安静、羞涩&#xff0c;更喜欢独处或与小范围的人交往…

vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)

文章目录 1.创建vuevite项目2.安装 Cesium2.1 安装cesium2.2 安装vite-plugin-cesium插件&#xff08;非必选&#xff09;2.3 新建组件页面map.vue2.4 加载地图 3.完成效果图 1.创建vuevite项目 打开cmd窗口执行以下命令&#xff1a;cesium-vue-app是你的项目名称 npm create…

二叉树的链式结构

前言 Hello,友友们&#xff0c;小编将继续重新开始数据结构的学习&#xff0c;前面讲解了堆的部分知识&#xff0c;今天将讲解二叉树的链式结构的部分内容。 1.概念回顾与新增 二叉树是一种数据结构&#xff0c;其中每个节点最多有两个子节点&#xff0c;分别是左子节点和右子…

在 PostgreSQL 中,如何处理数据的版本控制?

文章目录 一、使用时间戳字段进行版本控制二、使用版本号字段进行版本控制三、使用历史表进行版本控制四、使用 RETURNING 子句获取更新前后的版本五、使用数据库触发器进行版本控制 在 PostgreSQL 中&#xff0c;处理数据的版本控制可以通过多种方式实现&#xff0c;每种方式都…

【数据库】MySQL基本操作语句

目录 一、SQL语句 1.1 SQL分类 1.2 SQL语言规范 1.3 数据库对象与命名 1.3.1 数据库的组件(对象)&#xff1a; 1.3.2 命名规则&#xff1a; 1.4 SQL语句分类 二、基本命令 2.1 查看帮助信息 2.2 查看支持的字符集 2.3 查看默认使用的字符集 2.4 修改默认字符集 2.5…

使用Livox-Mid360激光雷达,复现FAST_LIO(保姆级教程)

前面我已经完成了mid360激光雷达的驱动安装&#xff0c;octomap的复现&#xff0c;昨天我去把这俩在正式环境中实测了一下&#xff0c;效果不好&#xff0c;走廊转角没建出来&#xff0c;我查了一下&#xff0c;应该是TF的原因&#xff0c;但这部分我还不太懂&#xff0c;看到有…

基于CentOS Stream 9平台搭建RabbitMQ3.13.4以及开机自启

1. erlang与RabbitMQ对应版本参考&#xff1a;https://www.rabbitmq.com/which-erlang.html 2. 安装erlang 官网&#xff1a;https://www.erlang.org/downloads GitHub: https://github.com/rabbitmq/erlang-rpm/releases 2.1 安装依赖&#xff1a; yum -y install gcc glib…

中英双语介绍美国苹果公司(Apple Inc.)

中文版 苹果公司简介 苹果公司&#xff08;Apple Inc.&#xff09;是一家美国跨国科技公司&#xff0c;总部位于加利福尼亚州库比蒂诺。作为全球最有影响力的科技公司之一&#xff0c;苹果以其创新的产品和设计引领了多个科技领域的变革。以下是对苹果公司发展历史、主要产品…

Go源码--channel源码解读

简介 channel顾名思义就是channel的意思&#xff0c;主要用来在协程之间传递数据&#xff0c;所以是并发安全的。其实现原理&#xff0c;其实就是一个共享内存再加上锁&#xff0c;底层阻塞机制使用的是GMP模型。可见 GMP模型就是那个道&#xff0c;道生一,一生二,二生三,三生…

[数据结构] 基于选择的排序 选择排序堆排序

标题&#xff1a;[数据结构] 基于选择的排序 选择排序&&堆排序 水墨不写bug &#xff08;图片来源于网络&#xff09; 目录 &#xff08;一&#xff09;选择排序 实现&#xff1a;(默认从小到大排序) 优化后实现方法&#xff1a; &#xff08;二&#xff09;堆排序…

UNIAPP_顶部导航栏右侧添加uni-icons图标,并绑定点击事件,自定义导航栏右侧图标

效果 1、导入插件 uni-icons插件&#xff1a;https://ext.dcloud.net.cn/plugin?nameuni-icons 复制 uniicons.ttf 文件到 static/fonts/ 下 仅需要那个uniicons.ttf文件&#xff0c;不引入插件、单独把那个文件下载到本地也是可以的 2、配置页面 "app-plus":…

1.Python学习笔记

一、环境配置 1.Python解释器 把程序员用编程语言编写的程序&#xff0c;翻译成计算机可以执行的机器语言 安装&#xff1a; 双击Python3.7.0-选择自定义安装【Customize installation】-勾选配置环境变量 如果没有勾选配置环境变量&#xff0c;输入python就会提示找不到命令…

论文略读:Large Language Models Relearn Removed Concepts

通过神经元修剪在模型编辑方面取得的进展为从大型语言模型中去除不良概念提供了希望。 然而&#xff0c;目前尚不清楚在编辑后模型是否具有重新学习修剪概念的能力——>论文通过在重新训练期间跟踪修剪神经元中的概念显著性和相似性来评估模型中的概念重新学习 研究结果表明…

vue3+electron项目搭建,遇到的坑

我主要是写后端,所以对前端的vue啊vue-cli只是知其然,不知其所以然 这样也导致了我在开发前端时候遇到了很多的坑 第一个坑, vue2升级vue3始终升级不成功 第二个坑, vue add electron-builder一直卡进度,进度条走完就是不出提示succes 第一个坑的解决办法: 按照网上说的升级v…

DAMA学习笔记(四)-数据建模与设计

1.引言 数据建模是发现、分析和确定数据需求的过程&#xff0c;用一种称为数据模型的精确形式表示和传递这些数据需求。建模过程中要求组织发现并记录数据组合的方式。数据常见的模式: 关系模式、多维模式、面向对象模式、 事实模式、时间序列模式和NoSQL模式。按照描述详细程度…

如何用简单的html,css,js写出一个带有背景层的删除弹出框

虽然每次项目都是主要写后端&#xff0c;但是有时候前端的样式太丑了&#xff0c;也有点看不下去。弹出框是项目中用的比较多的&#xff0c;比如删除&#xff0c;修改或者添加什么的&#xff0c;都需要一个弹出框。 所以这里简单记录一下&#xff0c;应该如何实现。实现效果如…

Android TextView的属性与用法

文本控件包括TextView、EditText、AutoCompleteTextView、CheckedTextView、MultiAutoCompleteTextView、TextInputLayout等&#xff0c;其中TextView、EditText是最基本最重要的文本控件&#xff0c;是必须要掌握的文本控件。 1.TextView TextView控件用于显示文本信息&…

深度学习原理与Pytorch实战

深度学习原理与Pytorch实战 第2版 强化学习人工智能神经网络书籍 python动手学深度学习框架书 TransformerBERT图神经网络&#xff1a; 技术讲解 编辑推荐 1.基于PyTorch新版本&#xff0c;涵盖深度学习基础知识和前沿技术&#xff0c;由浅入深&#xff0c;通俗易懂&#xf…

分布式整合

一、分布式架构介绍 什么是分布式系统 分布式系统指一个硬件或软件组件分布在不同的网络计算机上&#xff0c;彼此之间仅仅通过消息传递进行通信和协调的系统。 通俗的理解&#xff0c;分布式系统就是一个业务拆分成多个子业务&#xff0c;分布在不同的服务器节点&#xff0…

LabVIEW与OpenCV图像处理对比

LabVIEW和OpenCV在图像处理方面各有特点。LabVIEW擅长图形化编程、实时处理和硬件集成&#xff0c;而OpenCV则提供丰富的算法和多语言支持。通过DLL、Python节点等方式&#xff0c;OpenCV的功能可在LabVIEW中实现。本文将结合具体案例详细分析两者的特点及实现方法。 LabVIEW与…