C++语法15 多分支结构(if多分支与switch结构)

if else if else 多分支结构基本框架

if(条件1)语句1;       //满足条件1就执行
else if(条件2)语句2;       //不满足条件1,但是满足条件2执行
else if (条件3)语句3;       //不满足条件1和条件2,满足条件3执行
......
else 语句 n;     //不满足上面所有条件就执行

if开始,中间都是else if,最后是以else结束是对上面所有条件的否定

不同三角形

我们已经知道三角形的成立条件是任意两边之和大于第三边了。按照边长的特性我们还将三角形分为等边,等腰和一般三角形。

等腰三角形就是有两边相等,等边三角形就是三边都相等,一般三角形就是任意两边都不等。

训练:特殊三角形

输入三角形的三边,判断它是何种类型的三角形?是等边的话输出'DB',仅是等腰的话输出'DY',除此之外都属于一般三角形,输出'YB',如果不能构成三角形则输出'NO'。(1<=a<=10,1<=b<=10,1<=c<=10)

【输入格式】三个整数a,b,c,分别代表三条边的边长

【输出格式】DB或者DY或者YB或者NO

【输入样例】3 4 3

【输出样例】DY

解析

判断是否是三角形:首先要判断这三条边是否能构成三角形,即要满足任意两边之和要大于第三边

是三角形:除去上面的情况,则能构成三角形,紧接着判断什么类型的三角形

参考代码

#include<iostream>
using namespace std;
int main( )
{int a,b,c;cin>>a>>b>>c;if(a+b<=c||a+c<=b||b+c<=a)cout<<"NO";else  if(a==b&&a==c)cout<<"DB";else  if(a==b||a==c||b==c)cout<<"DY";else  cout<<"YB";return 0;
}

训练:电脑故障

学校组织的某次竞赛一共有99位学生参加,考试结束后老师对编号从1-99的每一位同学的成绩进行名次标注,并在电脑上记录。结果电脑出现了故障,将第1名到第9名改为了10,20,30...90 名,将第10,20,30...90 名改为了第1到第9名。竞赛成绩前50名(包括50名)的同学获得奖励,后49名没有奖励。在电脑故障后随意输入一个同学的名次n,输出在电脑故障之前他应该是什么名次,和之前是否应该获得奖励。(1<=a<=100)

【输入格式】一个整数n,表示故障后的名次

【输出格式】故障前的名次和是否获奖,用空格隔开(获得奖励输出Yes,没有获得输出No)

【输入样例】70

【输出样例】7 Yes

解析

调整现在的10-90名:现在的10-90名其实是1-9名,将10-90调整回1-9,需要将这个数被10整除

调整现在的1-9名:现在的1-9名其实是10-90名,将1-9调整回10-90,需要将这个数乘以10

参考代码

#include<iostream>
using namespace std;
int main( )
{int n;cin>>n;if(n%10==0)     n=n/10;else if(n<10)    n=n*10;if(n<=50)    cout<<n<<" Yes";else    cout<<n<<" No";return 0;
}

什么是switch结构?

应用条件语句可以很方便地使程序实现分支,但是出现分支比较多的时候,虽然可以用嵌套的if语句来解决,但是程序结构会显得复杂,其至凌乱。为方便实现多情况选择,C++提供了一种switch开关语句。

基本框架

 switch(表达式){case 常量表达式1:语句序列1;break;……case  常量表达式n:语句序列n;break;default:语句序列n+1;}

该语句中可以使用一次或多次case标号,但只能使用一次default标号,或者省略整个default部分

多个case标号也允许使用在同一个语句序列的前面

每个语句标号有保留字case和后面的常量表达式及冒号组成,每个常量表达式通常为字面常量,如常数或字符。

switch语句的执行过程

计算出switch后面圆括号内表达式的值,假定为M,若它不是整型,系统将自动舍去其小数部分,只取其整数部分作为结果值。

依次计算出每个case后常量表达式的值,假定它们为M1、M2、…,同样若它们的值不是整型,则自动转换为整型。

让M依次同M1、M2、…进行比较,一旦遇到M与某个值相等,则就从对应标号的语句开始执行;在碰不到相等的情况下,若存在default子句,则就执行其冒号后面的语句序列,否则不执行任何操作;当执行到复合语句最后的右花括号时就结束整个switch语句的执行。

注意事项

case语句后的各常量表达式的值不能相同,否则会出现错误码。

每个case或default后,可以包含多条语句,不需要使用“{”和“}”括起来。

各case和default子句的先后顺序可以变动,这不会影响程序执行结果。

default子句可以省略,default后面的语句末尾可以不必写break。

训练:计算器

一个最简单的计算器支持+,-,*,/四种运算。输入只有一行:两个参加运算的数和一个操作符(+,-,*,/)。输出运算表达式的结果。考虑下面两种情况:
(1)如果出现除数为0的情况,则输出:Divided by zero!
(2)如果出现无效的操作符(即不为+,-,*,/之一),则输出:Invalid operator!
【输入样例】34  56  +
【输出样例】90

解 析

设num1、num2存放两个参加运算的操作数,op存放操作符。

  • 当op为“+”号时,实现加法操作。
  • 当op为“-”号时,实现减法操作。
  • 当op为“*”号时,实现乘法操作。
  • 当op为“/”号时,判断b值,如果不为0,则实现除法操作,如果为0,则输出:Divided by zero!。
  • 当op不是上面四种操作符时,输出:“Invalid operator!”。

参考代码

float num1,num2;
char op;
cin>>num1>>num2>>op;
switch(op)
{case '+': cout<<num1+num2;break;case '-': cout<<num1-num2;break;case '*': cout<<num1*num2;break;case '/':if(num2!=0) cout<<num1/num2;break;else cout<<"Divided by zero!";break;default: cout<<"Invalid operrator!";
}


从入门到算法,再到数据结构,查看全部文章请点击此处icon-default.png?t=N7T8http://bigbigli.com/

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

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

相关文章

HACH哈希紫外可见光分光光度计维修DR6000

DR3900可见分光光度计内置准双光束光学系统&#xff0c;自动校准波长&#xff0c;该可见光分光光度计预置200多个用户程序&#xff0c;几乎覆盖常规水质参数&#xff0c;彩色触屏搭载中文操作界面&#xff0c;可自动分析检测并存储2000组实验数据&#xff0c;是一款测量准确的可…

掌控Linux-Conda环境安装终极指南

Linux-Conda环境安装教程 一、引言1.1. conda的作用与优势优势&#xff1a; 1.2. 简述conda在Linux系统中的重要性重要性&#xff1a; 二、准备工作2.1. 系统要求与兼容性Linux发行版支持情况硬件资源需求 2.2. 安装前的必要工具wget或curl的安装必要的开发库 三、下载与安装Mi…

HTTP 415错误状态码

HTTP 415错误状态码是指"Unsupported Media Type"&#xff08;不支持的媒体类型&#xff09;。这通常发生在客户端向服务器发送请求时&#xff0c;请求中包含的媒体类型&#xff08;例如Content-Type头部&#xff09;不被服务器支持或识别的情况下。 解决方法&#…

python-开学?

[题目描述] 小执&#xff1a;终于可以开学啦&#xff01;好开心啊&#xff01; 小理&#xff1a;你没看新闻吗&#xff0c;开学日期又延后了。 小执&#xff1a;&#x1d441;&#x1d442;&#x1d442;&#x1d442;&#x1d442;&#x1d442;&#x1d442;&#x1d442;&am…

Ubuntu基础-vim编辑器

目录 前言: 一. 安装 二. 配置 三. 基本使用 1.使用 Vim 编辑文本文件 2.代码编辑 3.多窗口编辑 四. 总结 前言: Vim 是从 VI 发展出来的一个文本编辑器&#xff0c;具有代码补充、错误跳转等功能&#xff0c;在程序员中被广泛使用。它的设计理念是命令的组合&#xff…

APS-SCM联动:开创生产调度与供应链管理新篇章

在当今激烈的市场产品竞争环境下&#xff0c;企业不仅需要灵活高效的内部生产流程&#xff0c;更需具备对外部环境快速响应的能力&#xff0c;从而保证产品保质保量的生产完成&#xff0c;快速占据更多的市场份额。正是在这样的背景下&#xff0c;APS&#xff08;Advanced Plan…

数据库、中台、报表平台之间的关系

我最近在接触报表平台和中台&#xff0c;发现他们跟我平常用的数据库不是一个东西。然后&#xff0c;我开始了摸索他们的过程&#xff0c;终于&#xff0c;我在理清他们的关系以后&#xff0c;简单写一个入门级的区分。 数据库&#xff1a; 定义&#xff1a; 数据库是被长期存…

主流电商平台API接口【京东商品详情按关键字搜索商品按图搜索京东商品(拍立淘)获得店铺的所有商品】

主流电商平台商品接口在电商企业中的应用可以帮助企业实现信息同步、库存管理、订单处理、数据分析和营销推广等多重功能&#xff0c;提升运营效率、优化用户体验&#xff0c;进而推动业务增长。 jd API 接入说明 API地址:申请调用KEY地址 调用示例&#xff1a; 参数说明 通用…

查询Kafka集群中消费组(group)信息和对应topic的消费情况

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

推动 AI/ML 创新:使用 MinIO 的高性能对象存储构建特征存储

MinIO 为全球 S3 和对象存储设定了标准&#xff0c;并已成为实现 AI 代理和功能存储集成的关键参与者。随着组织努力利用 AI 的力量来推动创新并获得竞争优势&#xff0c;高效数据管理的重要性以及将 AI 代理无缝集成到现有工作流程中的能力变得至关重要。在本文中&#xff0c;…

IntelliJ IDEA 2024.1安装_idea2024.1版本激 活 码分享

一&#xff1a;IDEA官方下载 ①如题&#xff0c;先到IDEA官方下载&#xff0c;简简单单 ②IDEA官方&#xff1a;IntelliJ IDEA – the Leading Java and Kotlin IDE 二&#xff1a;获取脚本 https://www.yuque.com/fengye-cyk1s/dxii3c/orbl5ruhvm7m3s4g &#x1f31f;获取完…

Web应用安全测试-权限缺失

Web应用安全测试-权限缺失 Flash跨域访问 漏洞描述&#xff1a;flash跨域通信&#xff0c;依据的是crossdomain.xml文件。该文件配置在服务端&#xff0c;一般为根目录下&#xff0c;限制了flash是否可以跨域获取数据以及允许从什么地方跨域获取数据。举个例子&#xff1a; 1、…

华为全流程全要素研发项目管理实践

在当前竞争激烈的市场环境中&#xff0c;企业要想在技术研发和项目管理上取得突破&#xff0c;必须建立健全的管理体系。本文将深入探讨华为全流程全要素研发项目管理的实践&#xff0c;从项目管理的定义、目标管理到具体的执行过程&#xff0c;全面解析如何在研发项目中实现高…

在得物的小程序生态实践

一、前言 提起微信小程序&#xff0c;相信所有人都不陌生&#xff0c;下面这个典型使用场景你一定经历过&#xff1a; 餐馆落座——微信扫桌角小程序码——使用微信小程序点餐&#x1f354; 微信小程序&#xff08;下文简称&#xff1a;小程序&#xff09;作为一种在微信平台…

【前端取不到cookie的的原因】http-only

某条cookie有http-only属性时&#xff0c;下面两种方法都取不到&#xff0c;还是改需求吧&#xff0c;别取了 1、 npm install js-cookie --save import Cookies from js-cookie let cookieValue Cookies.get(name)2、document.cookie

IAST面面观 | IAST强化越权检测能力,提升系统安全性

什么是越权漏洞 越权漏洞是一种常见的逻辑安全漏洞。越权漏洞指的是攻击者利用系统中的漏洞&#xff0c;获得超过其正常权限的访问权限&#xff0c;执行未授权操作。 越权漏洞主要分为两种类型&#xff1a;水平越权&#xff08;横向越权&#xff09;和垂直越权&#xff08;纵…

刷代码随想录有感(107):动态规划——01背包/最后一块石头的重量||

题干&#xff1a; 代码&#xff1a; class Solution { public:int lastStoneWeightII(vector<int>& stones) {vector<int>dp(15001, 0);int sum 0;for(int i : stones){sum i;}int target sum / 2;for(int i 0; i < stones.size(); i){for(int j targ…

AI + 3D:用单个图像和文本提示创建可交互的3D世界

你是否曾经梦想过只需一张照片和一些简单的文字描述,就能立即进入一个生动的3D虚拟世界?今天,我们将介绍一个革命性的技术,它就像是一台神奇的3D场景制造机,能够根据你的想象快速构建出令人惊叹的虚拟空间。 一、技术概览 这项技术不仅仅是一个简单的图像到3D的转换工具…

【免费API推荐】:轻松集成,为您的应用增添更多价值(9)

开发者喜爱的免费API是他们在开发过程中最宝贵的伙伴。这些API提供了丰富的功能和数据&#xff0c;帮助开发者构建出令人惊叹的应用。无论是地图服务、社交媒体集成、数据分析还是人工智能&#xff0c;这些免费API为开发者提供了强大的工具和资源&#xff0c;让他们能够更轻松地…