7-3 查询水果价格

分数 15

全屏浏览题目

切换布局

作者 C课程组

单位 浙江大学

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

首先在屏幕上显示以下菜单:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit

用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。

输入格式:

输入在一行中给出用户连续输入的若干个编号。

输出格式:

首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。

输入样例1:

3 -1 0 2

输出样例1:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00

输入样例2:

1 2 3 3 4 4 5 6 7 8

输出样例2:

[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

我的答案:

解题过程:

1. 分析问题:
首先,需要在屏幕上显示一个菜单。然后,根据用户的输入显示相应的水果价格。程序的两种退出方式:连续查询5次或用户输入0。

2. 确定解题步骤:

  • 显示菜单。
  • 创建一个数组或其他数据结构来存储水果和其价格。
  • 迭代最多5次或直到用户输入为0,进行以下操作:
    • 读取用户的输入。
    • 根据输入查询并显示价格。

3. 写代码:

C语言:

#include <stdio.h>int main() {double prices[] = {0.0, 3.00, 2.50, 4.10, 10.20};int choice, count = 0;// Display menuprintf("[1] apple\n");printf("[2] pear\n");printf("[3] orange\n");printf("[4] grape\n");printf("[0] exit\n");while (count < 5) {scanf("%d", &choice);if (choice == 0) {break;}if (choice >= 1 && choice <= 4) {printf("price = %.2f\n", prices[choice]);} else {printf("price = 0.00\n");}count++;}return 0;
}

C++:

#include <iostream>
#include <iomanip>
using namespace std;int main() {int choice, count = 0;// Display menucout << "[1] apple" << endl;cout << "[2] pear" << endl;cout << "[3] orange" << endl;cout << "[4] grape" << endl;cout << "[0] exit" << endl;while (count < 5) {cin >> choice;if (choice == 0) {break;}cout << "price = " << fixed << setprecision(2);switch (choice) {case 1:cout << 3.00 << endl;break;case 2:cout << 2.50 << endl;break;case 3:cout << 4.10 << endl;break;case 4:cout << 10.20 << endl;break;default:cout << "0.00" << endl;break;}count++;}return 0;
}

总结:

学到了什么?

这道题目提供了多个学习和思考点:

1. **选择结构的应用**:通过使用`switch`语句,我们可以明白其如何根据不同的条件选择不同的执行路径。它是一个常用的结构,特别是当有多个条件需要判断时。

2. **循环控制**:这道题目要求在查询超过5次后自动退出,这介绍了循环的使用,并在循环内部通过条件判断进行中断。

3. **输入/输出格式的控制**:使用`fixed`和`setprecision`来控制输出格式,让我们知道如何以特定的格式显示数字。

4. **用户交互与界面**:通过提供一个简单的菜单,我们学习了如何创建基础的用户交互界面。

5. **边界条件的处理**:处理无效的输入是编程中的一个常见任务。这里,如果输入的选项不在预期的范围内,则输出为0.00,这教给我们总是要考虑和处理可能的非预期输入。

6. **程序的组织和结构**:虽然这是一个相对简单的程序,但它的结构(如何组织`switch`语句、如何控制循环等)为更复杂的程序提供了模板。

7. **问题分析与解决策略**:在实际编程任务中,首先要对问题进行分析,确定输入和输出,然后选择适当的策略来解决它。这道题目提供了一个很好的练习机会,因为它要求从问题描述中提取关键信息,并将这些信息转化为有效的代码。

总的来说,这道题目提供了一个很好的练习机会,通过它我们可以学习并加强对基本编程概念和策略的理解。

 

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

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

相关文章

torch一些操作

Pytorch文档 Pytorch 官方文档 https://pytorch.org/docs/stable/index.html pytorch 里的一些基础tensor操作讲的不错 https://blog.csdn.net/abc13526222160/category_8614343.html 关于pytorch的Broadcast,合并与分割,数学运算,属性统计以及高阶操作 https://blog.csd…

Open_MV学习笔记1:开发环境获取

稍微学点计算机视觉相关吧&#xff0c;从今天开始浅浅地学习一下Open_MV&#xff0c;以及回忆一下Python编程相关&#xff0c;Open_mv编程需要用到Python&#xff0c;因此设俩个专栏&#xff1a;Open_mv专栏与Python的专栏&#xff0c;大家可以与我一起&#xff0c;在俩者之间跳…

c#设计模式-结构型模式 之 代理模式

前言 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时&#xff0c;访问对象不适合或者不能直接 引用目标对象&#xff0c;代理对象作为访问对象和目标对象之间的中介。在学习代理模式的时候&#xff0c;可以去了解一下Aop切面编程AOP切面编程_aop编程…

函数栈帧的创建与销毁

目录 引言 基础知识 内存模型 ​ 寄存器的种类与功能 常用的汇编指令 函数栈帧创建与销毁 main()函数栈帧的创建 NO1. NO2. NO3. NO4. NO5. NO6. main()函数栈帧变量的创建 调用Add()函数栈帧的预备工作——传参 NO1. NO2. NO3. Add()函数栈帧的创建 …

C++笔记之Class A a = b调用的什么构造函数(引例)

C笔记之Class A a b调用的什么构造函数(引例) code review! 文章目录 C笔记之Class A a b调用的什么构造函数(引例)1.C笔记之Class A a b调用的什么构造函数&#xff1f;2.常见的三种形式3.等价的两种形式 1.C笔记之Class A a b调用的什么构造函数&#xff1f; 2.常见的三…

认识Mybatis并实现增删查改

目录 一.Mybatis特性 二.常见持久层技术的比较 三.搭建Mybaits环境 四.使用Mybatis 五.通过Mybatis实现增删改 六.实现数据库的查询操作 一.Mybatis特性 定制化SQL&#xff1a;MyBatis允许开发人员编写、优化和管理自定义的SQL语句&#xff0c;可以满足复杂查询和存储过程等…

LeetCode 热题 100(五):54. 螺旋矩阵、234. 回文链表、21. 合并两个有序链表

题目一&#xff1a; 54. 螺旋矩阵https://leetcode.cn/problems/spiral-matrix/ 题目要求&#xff1a; 思路&#xff1a;一定要先找好边界。如下图 &#xff0c;上边界是1234&#xff0c;右边界是8、12&#xff0c;下边界是9、10、11&#xff0c;左边界是5&#xff0c;所以可…

Unity如何控制声音大小(包括静音功能)

一&#xff1a;UGUI制作 1. 首先在【层级】下面创建UI里面的Slider组件。设置好它对应的宽度和高度。 2.调整Slider滑动条的填充颜色。一般声音颜色我黄色&#xff0c;所以我们也调成黄色。 我们尝试滑动Slider里面的value。 a.滑动前。 b.滑动一半。 c.滑动完。 从以上滑动va…

LeetCode235. 二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 文章目录 [235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/)一、题目二、题解方法一&#xff1a;递归方法二&#xff1a;迭代 一、题目 给定一个二叉搜索树, 找到该树中两个指定…

恢复NuGet包_解决:System.BadImageFormatException:无法加载文件或程序集

C#工程 主要是开发了一个 web api接口&#xff0c;这个工程源码去年还可以的&#xff0c;今年换了一个电脑打开工程就报错。 错误提示如下&#xff1a; 在 Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main(String[] args) Test1 System.BadImageFormatEx…

【腾讯云 TDSQL-C Serverless 产品体验】基于腾讯云轻量服务器以及 TDSQL-C 搭建 LNMP WordPress 博客系统

文章目录 一、前言二、数据库发展与云原生数据库2.1 数据库发展简介2.2 云原生数据库简介2.2.1 云数据库与云原生数据库区别 三、腾讯云 TDSQL-C 数据库3.1 什么是腾讯云 TDSQL-C 数据库3.2 为什么推出 TDSQL-C 数据库&#xff1f;传统 MySQL 架构存在较多痛点3.2.1 传统 MySQL…

Spring讲解和ioc用途及Web容器的整合

目录 一、Spring概述 ( 1 ) 背景 ( 2 ) 是什么 ( 3 ) 核心特性 二、Spring中的ioc 2.1 讲解 2.2 主要功能 2.3 实例演示 三、注入方式 3.1 set注入 3.2 构造注入 3.3 接口注入 四、Web容器整合 4.1 思考 4.2 实操 对我们的收获 一、Spring概述 ( 1 ) 背景 Spr…