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.mzph.cn/web/40820.shtml

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

相关文章

1493. 删掉一个元素以后全为 1 的最长子数组

1493. 删掉一个元素以后全为 1 的最长子数组 题目链接&#xff1a;1493. 删掉一个元素以后全为 1 的最长子数组 代码如下&#xff1a; class Solution { public://滑动窗口int longestSubarray(vector<int>& nums){int res 0;int count 0;//记录碰到0的个数int …

【MYSQL】事务隔离级别以及InnerDB底层实现

事务隔离级别 读未提交&#xff08;Read Uncommitted&#xff09; 允许事务读取其他事务未提交的数据&#xff0c;可能会导致脏读。 读已提交&#xff08;Read Committed&#xff09; 一个事务只能看见已经提交的事务所做的更改&#xff0c;可以避免脏读&#xff0c;但可能…

win7系统快速安装python

下载安装包 建议选择python3.8左右的&#xff0c;我下载的是3.7.8&#xff0c;最新版本的pythonwin7可能不支持 python网址 下拉寻找 安装python 1.双击安装包 更换完地址选择安装(install) 安装完成后点击close即可 测试是否安装成功 1.winr快捷键打开黑窗口输入cmd …

idea创建的maven项目pom文件引入的坐标报红原因

如下所示 我们在引入某些依赖坐标的时候&#xff0c;即使点击了右上角的mavne刷新之后还是报红。 其实这是正常现象&#xff0c;实际上是我们的本地仓库当中没有这些依赖坐标&#xff0c;而idea就会通过报红来标记这些依赖来说明在我们的本地仓库是不存在的。 那有的同学就会…

【HICE】dns正向解析

1.编辑仓库 2.挂载 3.下载软件包 4.编辑named.conf 5.编辑named.haha 6.重启服务 7.验证本地域名是否解析

1116. 打印零与奇偶数

题目描述 现有函数 printNumber 可以用一个整数参数调用&#xff0c;并输出该整数到控制台。 例如&#xff0c;调用 printNumber(7) 将会输出 7 到控制台。 给你类 ZeroEvenOdd 的一个实例&#xff0c;该类中有三个函数&#xff1a;zero、even 和 odd 。ZeroEvenOdd 的相同实…

六、快速启动框架:SpringBoot3实战-个人版

六、快速启动框架&#xff1a;SpringBoot3实战 文章目录 六、快速启动框架&#xff1a;SpringBoot3实战一、SpringBoot3介绍1.1 SpringBoot3简介1.2 系统要求1.3 快速入门1.4 入门总结回顾复习 二、SpringBoot3配置文件2.1 统一配置管理概述2.2 属性配置文件使用2.3 YAML配置文…

短剧app开发搭建需要哪些资质证件?

短剧APP需要办理的资质包括增值电信业务经营许可证&#xff08;ICP&#xff09;、网络文化经营许可证&#xff08;文网文&#xff09;、广播电视节目制作经营许可证&#xff0c;以及软件著作权&#xff08;软著&#xff09;。 增值电信业务经营许可证&#xff08;ICP&#xff…

ODOO17的邮件机制-系统自动推送修改密码的邮件

用户收到被要求重置密码的邮件&#xff1a; 我们来分析一下ODOO此邮件的工作机制&#xff1a; 1、邮件模板定义 2、渲染模板的函数&#xff1a; 3、调用此函数的机制&#xff1a; 当用户移除或增加了信任的设备&#xff08;如电脑、手机端等&#xff09;&#xff0c;系统会自…

Python爬虫之什么是逆向工程?逆向是什么?

Python爬虫之什么是逆向工程&#xff1f;逆向是什么&#xff1f; 在Python爬虫领域&#xff0c;逆向工程是一种重要的技术手段&#xff0c;尤其在面对复杂的网站结构和加密的数据时。逆向工程通常涉及对目标网站的分析&#xff0c;包括其前端代码、后端逻辑、数据传输方式等&am…

CentOS 7.9 停止维护(2024-6-30)后可用在线yum源 —— 筑梦之路

众所周知&#xff0c;centos 7 在2024年6月30日&#xff0c;生命周期结束&#xff0c;官方不再进行支持维护&#xff0c;而很多环境一时之间无法完全更新替换操作系统&#xff0c;因此对于yum源还是需要的&#xff0c;特别是对于互联网环境来说&#xff0c;在线yum源使用方便很…

三级_网络技术_01_网络系统结构与设计的基本原则

1.下列关于RPR技术的描述中&#xff0c;错误的是()。 RPR与FDDI一样使用双环结构 在RPR环中&#xff0c;源节点向目的节点成功发出的数据帧要由目的节点从环中收回 RPR环中每一个节点都执行MPLS公平算法 RPR环能够在50ms内实现自愈 2.下列关于RPR技术的描述中&#xff0c;…

从0到1:培训老师预约小程序开发笔记二

背景调研 培训老师预约小程序&#xff1a; 教师和学生可以更便捷地安排课程&#xff0c;并提升教学质量和学习效果&#xff0c;使之成为管理和提升教学效果的强大工具。培训老师可以在小程序上设置自己的可预约时间&#xff0c;学员可以根据老师的日程安排选择合适的时间进行预…

记录第一次使用air热更新golang项目

下载 go install github.com/cosmtrek/airlatest 下载时提示&#xff1a; module declares its path as: github.com/air-verse/air but was required as: github.com/cosmtrek/air 此时&#xff0c;需要在go.mod中加上这么一句&#xff1a; replace github.com/cosmtrek/air &…

如何使用Pip从Git仓库安装Python包:深入探索远程依赖管理

如何使用Pip从Git仓库安装Python包&#xff1a;深入探索远程依赖管理 Python的包管理工具Pip使得安装和管理Python库变得非常简单。有时&#xff0c;我们需要安装那些尚未发布到PyPI的包&#xff0c;或者想要尝试最新的开发版本。这时&#xff0c;可以直接从Git仓库安装包。本…

qt QGridLayout 简单实验1

1.概要 2.实验 2.1 实验1 简单实验跨行 2.1.1 代码 #ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~W…

STM32 - 内存分区与OTA

最近搞MCU&#xff0c;发现它与SOC之间存在诸多差异&#xff0c;不能沿用SOC上一些技术理论。本文以STM L4为例&#xff0c;总结了一些STM32 小白入门指南。 标题MCU没有DDR&#xff1f; 是的。MCU并没有DDR&#xff0c;而是让代码存储在nor flash上&#xff0c;临时变量和栈…

yolov5实例分割跑通以及C#读取yolov5_Seg实例分割转换onnx进行检测部署

一、首先需要训练yolov5_seg的模型&#xff0c;可以去网上学习&#xff0c;或者你直接用我的&#xff0c; 训练环境和yolov5—7.0的环境一样&#xff0c;你可以直接拷过来用。 yolov5_seg算法 链接&#xff1a;https://pan.baidu.com/s/1m-3lFWRHwg5t8MmIOKm4FA 提取码&…

【MySQL】1.初识MySQL

初识MySQL 一.MySQL 安装1.卸载已有的 MySQL2.获取官方 yum 源3.安装 MySQL4.登录 MySQL5.配置 my.cnf 二.MySQL 数据库基础1.MySQL 是什么&#xff1f;2.服务器&#xff0c;数据库和表3.mysqld 的层状结构4.SQL 语句分类 一.MySQL 安装 1.卸载已有的 MySQL //查询是否有相关…

《Windows API每日一练》8.3 scrollbar控件

在第三章SYSMETS2.C实例中&#xff0c;我们是通过CreateWindow函数创建窗口的参数窗口样式中添加垂直或水平滚动条。本节我们将讲述作为子窗口控件的滚动条。 本节必须掌握的知识点&#xff1a; 滚动条类 滚动条控件和着色 8.3.1 滚动条类 ■窗口滚动条与滚动条控件的异同 …