09C++选择结构(3)
一、求3个整数中最小值
题目:输入三个整数,表示梨的重量,输出最小的数。
方法1:经过三次两两比较,得出最小值。
a<=b && a<=c min=a
b<=c && b<=a min=b
c<=b && c<=a min=c
流程图:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,b,c,min;
cout<<"a b c=";
cin>>a>>b>>c;
if(a<=b && a<=c) min=a;
if(b<=a && b<=c) min=b;
if(c<=b && c<=a) min=c;
cout<<"min="<<min<<endl;
return 0;
}
方法2:先找出a和b中较小的那个数,把较小的数赋值给min,然后再让min和c比较,找出最小值。
流程图:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,b,c,min;
cout<<"a b c=";
cin>>a>>b>>c;
if(a<=b)
min=a;
else
min=b;
if (c<min) min=c;
cout<<"min="<<min<<endl;
return 0;
}
方法3:先假设第一个数a为最小值,把它赋值给min;然后和第二个数b比较,若b比min小,就把第二数b赋值给min;再和第三个数c比较,若第三个数c比min小,就把三数c赋值给min,有点儿类似打擂台。
流程图:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,b,c,min;
cout<<"a b c=";
cin>>a>>b>>c;
min=a;
if (b<min) min=b;
if (c<min) min=c;
cout<<"min="<<min<<endl;
return 0;
}
注:通俗地讲,程序算法就是为解决某一特定问题而采取的具体有限的操作方法步骤。
练习:
(1)下列关于算法的叙述不正确的是( )。
A.算法的每一步必须没有歧义,不能有半点含糊。 B.算法必须有输入。
C.同一问题可能存在多种不同的算法。 C.同一算法可以用多种不同的形式来描述。
(2)阅读程序写结果。
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,b,c,max;
cin>>a>>b>>c;
if (a>b)
max=a;
else
max=b;
if (c>max) max=c;
cout<<"max="<<max<<endl;
return 0;
}
输入:100 10 200
a,b,c,max的输出:___________
(3)完善第13、15行程序。
输入4个数,输出其中最大的数。
6 #include <iostream> //包含输入输出流头文件iostream
7 using namespace std; //指明程序 使用命名空间std(标准)
8 int main()
9 {
10 float a,b,c,d,max; //浮点数
11 cout<<"a,b,c,d=";
12 cin>>a>>b>>c>>d;
13 ;
14 if (b>max) max=b;
15 if ( ) max=c;
16 if (d>max) max=d;
17 cout<<"max="<<max<<endl;
18 return 0;
19 }
二、3个数排序
问题:试编一程序,输入三个数,表示三匹马跑100米的秒数,时间越小速度越快,请将秒数按由小到大的顺序输出。
方法:
流程图:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int a,b,c,temp;
cout<<"a,b,c=";
cin>>a>>b>>c;
if (a>b)
{
temp=a;
a=b;
b=temp;
}
if (a>c)
{
temp=a;
a=c;
c=temp;
}
if (b>c)
{
temp=b;
b=c;
c=temp;
}
cout<<a<<' '<<b<<' '<<c<<endl;//' '中间有一个空格
return 0;
}
练习:
(1)在计算机工作过程中,若突然停电,( )中的信息不会丢失。
A.ROM和RAM ....... B.CPU ......... C.ROM ............... D.RAM
(2)阅读程序写结果。
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int x,y;
y=0;
cin>>x;
if (x<0)
y=x;
else
{
y=x*x;
y+=(x+1)*(x+1);
}
cout<<y;
return 0;
}
输入:3
x,y的输出:____________
(3)编程
输入4个字母分别给字符变量a1、a2、a3、a4,按字母顺序输出它们。
三、随机函数rand()
随机数rand()函数返回的值是一个大于等于0且小于等于RAND_MAX的随机整数,RAND_MAX是一个符号常量(通俗讲,符号量就是“替代”。即用一个标识符来代常量)它的值与操作系统、编译器等有关。若在Windows操作系统下的DevC+中其值为32767。若在Linux操作系统下的g++中其值为2147483647。在使用随机函数rand()前,需要包含cstdlib头文件,即#include<cstdlib>
。
*编程实验随机函数rand()的使用。
要产生真随机数,方法是:
(1)使用srand()来设置随机种子,srand(time(0))设置当前的系统时间值为随机种子;需要包含头文件ctime,即#include <ctime>
。
(2)要产生一个[a,b]的随机整数,就要使用通用公式:
rand()%(b-a+1)+a
rand()%5+1 //可以产生一个[1,5]的随机整数。
例题:试编一个程序,计算机随机产生一个整数(1至5),自己输入一个整数,若两数相同,则输出“恭喜你,中奖了!奖金10元”,否则输出“没中奖,请付费2元”;同时公布中奖号码。
流程图:
#include <iostream> //包含输入输出流头文件iostream
#include <ctime> //需要调用time()函数
#include <cstdlib> //需要调用srand()和rand()函数
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int n,a;
cout<<"抽奖程序"<<endl;
cout<<"请输入1~5中的任一整数:";
cin>>n;
srand(time(0)); //随机种子
a=rand()%5+1; //产生[1,5]的一个随机整数
if (n==a)
cout<<"恭喜您,中奖了!奖金10万元。"<<endl;
else
cout<<"没中奖,请付费2元。"<<endl;
cout<<"中奖号码是:"<<a<<endl;
return 0;
}
英汉小词典:
rand random(随机)的缩写
srand 设置随机种子
练习
(1)一个字节(byte)由( )个二进制位组成。
A.8 B.4 C.2 D.16
(2)阅读程序写结果。
#include <iostream> //包含输入输出流头文件iostream
#include <ctime> //需要调用time()函数
#include <cstdlib> //需要调用srand()和rand()函数
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int x;
srand(time(0)); //随机种子
x=rand()%10; //产生[0,9]的一个随机整数
if (x<10) x=10;
if (x==10) x--;
if (x>10) x--;
if (x!=10) x--;
cout<<x;
return 0;
}
X的输出为:________________
(3)完善第17、18、21行程序。
一道两位数加法运算题:
第一步,由计算机产生两个两位数;
第二步,输出题目,如“45+78=‘;
第三步,输入答案;
第四步,判断答案是否正确。
9 #include <iostream> //包含输入输出流头文件iostream
10 #include <ctime> //需要调用time()函数
11 #include <cstdlib> //需要调用srand()和rand()函数
12 using namespace std; //指明程序 使用命名空间std(标准)
13 int main()
14 {
15 int n,a,b;
16 srand(time(0));
17 a= ; //产生两位数整数
18 b= ;
19 cout<<a<<'+'<<b<<'=';
20 cin>>n;
21 if ( ) //如果输入的数是否与运算结果相等
22 cout<<"对";
23 else
24 cout<<"错";
25 return 0;
26 }
四、if语句的应用
问题:周末,格莱尔和爸爸打车到游乐场玩。打车计价方案为:2千米内起步是6元;超过2千米之后按1.8元/千米计价;超过10千米之后在1.8元/千米的基础上加价50%,如图示。此外,停车等候则按时间计费每3分钟加收1元(注:不满3分钟不计费)。试编一程序,计算格莱尔需要付的打车费是多少?
流程图:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int path_l,time_sj; //path_l,time_sj代表路程,停车时间
float cost=0; //cost代表费用
cin>>path_l; //输入路程
if (path_l>10) //当路程大于10公里时
cost=6+(10-2)*1.8+(path_l-10)*1.8*1.5;
else
if (path_l>2)
cost=6+(path_l-2)*1.8;
else
cost=6;
cin>>time_sj; //输入停车时间
cost+=(time_sj/3)*1; //计算停车费用
cout<<cost<<endl;
return 0;
}
英汉小词典:
路程:path length
费用:cost
练习:
(1)下列( )是字符型数据。
A.a B.'3' C."good" D.3
(2)阅读程序写结果。
#include <iostream> //包含输入输出流头文件iostream
#include <ctime> //需要调用time()函数
#include <cstdlib> //需要调用srand()和rand()函数
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
int x;
cin>>x;
if (x==10) x++; else x--;
if (x>10) x++; else x--;
if (x<10) x++; else x--;
if (x!=10) x++; else x--;
cout<<"x="<<x<<endl;
return 0;
}
输入:10
x的输出:__________
(3)完善第11、15行程序。
超市为了促销,规定:购物不超过50元的按原价付款,超过50元不超过150元的,超过部分按九折付款,超过150元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。(100的九折就是1000.9=90元,100的八折就是1000.8=80元)
6 #include <iostream> //包含输入输出流头文件iostream
7 using namespace std; //指明程序 使用命名空间std(标准)
8 int main()
9 {
10 float n,m; //浮点数
11 ;
12 if (n<=50) m=n;
13 else
14 {
15 if (n<=150) ;
16 else m=50+100*0.9+(n-150)*0.8;
17 }
18 cout<<m;
19 return 0;
20 }
五、bug与debug
问题————体质指数(BMI)由19世纪中期比利时的通才凯特勒最先提出,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。它的计算方法如下:
体质指数(BMI)=体重(kg)/身高(m)的平方
以上标准只适合于成年人,试编一程序,根据体重、身高,判断其胖瘦程度。
流程图如下:
#include <typeinfo> //变量类型头文件,还是有问题;无法判断int
#include <iostream> //包含输入输出流头文件iostream
using namespace std; //指明程序 使用命名空间std(标准)
int main()
{
float height,weight,bmi; //身高,体重,体质指数
cout<<"身高(m):";
cin>>height; //输入身高
cout<<"体重(kg):";
cin>>weight;
bmi=weight/(height*height);
if (bmi<18.5)
cout<<"偏瘦";
else if (bmi<24)
cout<<"正常";
else if(bmi<28)
cout<<"偏胖";
else if(bmi<40)
cout<<"肥胖";
else
cout<<"极重度肥胖";
return 0;
}
测试数据:①1.71 62
②-1.71 62
③20 165
本程序运行时输入的数据存在问题,如运行结果②输入负数,运行结果③输入不太现实的数据。任何一个程序,都是有数据范围要求的,超出了数据范围,程序可能就不对了。在参加全国青少年信息学奥林匹克联赛(NOIP)等竞赛上机编程时,会发现每道题目都会给出数据范围,这就要求我们在设计算法时,要根据数据范围做更加全面细致的考虑,否则程序会出现bug。说到bug,这背后有一个有趣的故事:有一天,美国海军准将、计算机女科学家、世界最早的一批程序设计师葛丽丝·霍波(Grace Hopper),在调试设备时出现故障,拆开继电器后,发现有一只飞蛾被夹扁在触点中间,从而“卡”住了机器的运行。于是,霍波诙谐地把程序故障统称为“臭虫(bug)”,把排除程序故障叫debug,而这奇怪的“称呼”,竟成为后来计算机领域的专业术语。
练习:
(1)下面()公司制造了全球第一枚 CPU。
A.腾讯 B.英特尔 C.威盛 D. AMD
(2)
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin>>a>>b>>C;
if(b!=0)
if(a/b>c)
cout <<a<</' <<b<<'-' <<c<<'='<<a/b-c<<endl;
else
cout<<c<<'-'<<a<<'/'<<b<<'='<<c-a/b<<endl;
return 0;
}
输入:10 5 1
a,b,c的输出为:_______
(3)完善程序。
格莱尔家有一台海尔洗衣机,她在阅读使用说明书时发现洗衣机有故障代码提示功能:E1排水故障,E2未关好门,E4进水异常,E8超过报警水位。她编写了一个程序,实现故障代码查询功能。
#include <string>
#include <iostream>
using namespace std;
int main()
{
string n;
cout<"海尔洗衣机故障代码查询系统"<endl;
cout<<"请输入代码:";
___________________;
if(n=="El"|n=="el")
cout<<"排水故障"<endl;
else
if( )
cout<<"未关好门"<<endl;
else
if(n=="E4"|ln=="e4")
cout<<"进水异常"<<endl;
else
if(n=="E8"lln=="e8")
cout<"超过报警水位"<endl;
else
cout<"未查询到此错误代码,请联系当地经销商"<<endl;
return 0;
}
09C++选择结构(3)的更多相关文章
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- C语言中的循环结构与选择结构
1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...
- C- 流程控制(顺序结构,选择结构,循环结构)
一.选择结构 1.if 特点: 同一时刻,只有一个大括号里面的代码会被执行 2,switch 特点 默认情况下,只有一个case后面的代码会被执行 如果一个case后面没有break,而且这个case ...
- 160809212田京诚C语言程序设计实验2 选择结构程序设计_进阶
实验2-6 猜数字游戏 实验要求: 编写一个C程序实现一个[1-100]以内的猜数字游戏. (1) 系统随机产生一个[1-100]之间的随机数. (2) 输入任意一个数字.数字 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
- Java 第四章 选择结构2
第四章 选择结构 (二) switch 选择结构的执行流程是怎样的? switch 选择结构中break关键字的作用? 本章目标 掌握 switch 选择结构 能够综合运用 if 选择结构 和 swi ...
- Java 第三章 选择结构1
选择结构(一) 会使用基本的 if 选择结构 掌握逻辑运算符,掌握多重 if 选择结构 , 掌握嵌套 if 选择 结构 为什么需要 if 选择结构 例如: 如果张浩的 java 考试成绩大于 98分, ...
- Chrome弹窗的简单应用(选择结构与循环结构)
★选择结构★ ★JS实现弹窗显示随机数 示例代码效果图 ★ 弹窗实现对随机数的进一步判断 示例代码效果图 ★综合应用 比较大小 ★ 判断成绩等级 ): : : : : alert(" ...
- Java语法基础(三)----选择结构的if语句、switch语句
[前言] 流程控制语句: 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过 ...
- java中的if-Switch选择结构
字随笔走,笔随心走,随笔,随心.纯属个人学习分析总结,如有观者还请不啬领教. 1.if选择结构 什么是if结构:if选择结构是根据判断结果再做处理的一种语法结构. 起语法是: if(判断条件){ 操作 ...
随机推荐
- bfs与dfs ,全球变暖——蓝桥problems178
问题描述: ....... .##.... .##.... ....##. ..####. ...###. ....... 有一张还以N*N的像素照片,"."表示海洋," ...
- NICE与静态优先级的关系
在Linux系统中,nice值和静态优先级用于控制进程调度的优先级,但它们的范围和含义有所不同.让我们详细解释一下两者的区别和联系. 1. Nice值 范围:nice值的范围是从 -20 到 19. ...
- GLSL利用SDF进行矩形绘制公式推导
简单记录一下关于SDF绘制矩形的公式推导,因为我们在iq的SDF代码中,给的直接是最后的推导结果,对它是怎么得来的,还是有点困惑. //这是利用sdf绘制矩形 float sdBox( in vec2 ...
- 利用csv文件信息,将图片名信息保存到csv文件当中
我们可以利用train.csv文件信息, 再结合给定的文件路径(path)信息,可以将给定字目录下的图片名信息整合到scv文件当中. train.csv文件格式: 图片名信息: 代码如下: from ...
- manim边学边做--无向图
无向图属于数学中的图论这一学科, 所谓无向图G,就是由顶点集V(非空集合)和边集E(由V中元素构成的无序二元组的集合)组成的图, 可表示为G=(V,E). 在无向图中,边没有方向,即从顶点A到顶点B的 ...
- dotnet实现多态的三种方法
虚方法 virual 抽象方法 abstract 不能 new 不带方法体: 接口 Interface
- 轨道控制器 threejs
就是一个可以360转动的相机,通过不断的改变相机的参数 然后渲染达到效果. // 引入相机控件 -- 轨道控制器 // console.log('OrbitControls',OrbitContro ...
- ⼯作⾥中的token是怎么管理的?
我们公司的token管理都是通过vuex配合本地存储来做的,使⽤vuex是因为token数据⽐较特殊,在很多 模块中都可能会⽤到,vuex⽅便管理,配合本地存储⽐如localstorage,是因为vu ...
- 从浏览器输入url到回车发生了什么
1. 域名解析,即把域名解析成以为唯一的ip ps:ip是每个网站的对应的一个key,域名是为了语义化,方便使用而设计的 : ps:第一次域名解析需要花费较长的时间,所以一般第一次解析就会把DNS解析 ...
- 华为Ensp拓扑,使用MSTP、OSPF、DHCP、VRRP、链路聚合、CHAP
OSPF+DHCP+VRRP+Eth-trunk+PPP(CHAP)+MSTP 实验目标: LSW1和LSW2核心交换机互为备份,配置链路聚合,设备冗余设计,LSW1和LSW2作为核心交换机配置DHC ...