09C++选择结构(3)

news/2024/11/29 11:25:12/文章来源:https://www.cnblogs.com/citStudy/p/18448874

一、求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;elsemin=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;elsemax=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
*编程实验随机函数rand()的使用。
要产生真随机数,方法是:
(1)使用srand()来设置随机种子,srand(time(0))设置当前的系统时间值为随机种子;需要包含头文件ctime,即#include
(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;elsecout<<"没中奖,请付费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;elseif (path_l>2)cost=6+(path_l-2)*1.8;elsecost=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<<"肥胖";elsecout<<"极重度肥胖";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;elsecout<<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;elseif(     )cout<<"未关好门"<<endl;elseif(n=="E4"|ln=="e4")cout<<"进水异常"<<endl;elseif(n=="E8"lln=="e8")cout<"超过报警水位"<endl;elsecout<"未查询到此错误代码,请联系当地经销商"<<endl;return 0;
}

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

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

相关文章

hhdb数据库介绍(9-26)

计算节点参数说明 masterSourceInitWaitTimeout 参数说明:Property Value参数值 masterSourceInitWaitTimeout是否可见 否参数说明 启动时数据节点中主存储节点初始化超时时间默认值 300最小值 0最大值 600Reload是否生效 是参数作用: 启动时,主存储节点在首次初始化失败后,…

[TSDB] OpenGemini wal文件与tssp文件的用途与关系

前言 openGemini是一款面向物联网、车联网、工业互联网、运维监控等领域的开源分布式时序数据库。 在openGemini中,WAL(Write-Ahead Logging)文件和TSSP(Time Series Storage Protocol)文件扮演着重要的角色,以下是关于它们的用途及关系的详细解释: WAL文件 用途WAL文件…

hhdb数据库介绍(9-24)

计算节点参数说明 failoverAutoresetslave 参数说明:Property Value参数值 failoverAutoresetslave是否可见 是参数说明 故障切换时,是否自动重置主从复制关系默认值 falseReload是否生效 否参数设置: <property name="failoverAutoresetslave">false</p…

“4个应用场景”以图搜图与实物比对,赋能机械制造智能化升级

背景 随着制造业和工业生产的不断发展,机械设计和加工过程中的图纸与实物比对成为生产质量管控的重要环节。然而,传统手动比对方式耗时费力,且易出现误差。思通数科凭借自主研发的大模型技术,为用户提供了一套高效、智能的以图搜图与实物比对解决方案,大幅提升了机械设计和…

校园防欺凌ai语音监控系统

校园防欺凌ai语音监控系统核心优势在于其先进的音频识别算法,校园防欺凌ai语音监控系统能够识别出关键词如侮辱、恐吓、求救等敏感语言,并能够区分正常的交流和潜在的欺凌行为。系统通过安装在校园各关键区域的麦克风捕捉声音信号,这些信号会被实时传输到中央处理单元。在这…

hhdb数据库介绍(9-18)

SQL语法支持 计算节点语法特殊功能 默认分片规则建表 在使用关系集群数据库时,需要先将表的分片规则信息配置好之后才能创建表。实际使用过程中,用户可能对关系集群数据库及分片规则不了解,这就需要一种能直接过渡到HHDB Server的方案,该方案能根据逻辑库关联的分片节点数量…

Windows Cmd查询端口号对应的进程及关闭进程

Windows Cmd查询端口号对应的进程及关闭进程 1. 使用 netstat 查询端口和进程信息 运行以下命令: netstat -ano | findstr :端口号示例: 如果要查询端口 80812. 查找进程 ID 所属的程序 通过上面命令的输出获取到 PID(进程 ID)后,可以使用以下命令查看对应的程序名称: ta…

hhdb数据库介绍(9-16)

SQL语法支持 事务管理与锁语句语句类型 事务语句 语句参数 状态 说明事务管理 START TRANSACTION 无参数 支持WITH CONSISTENT SNAPSHOT 支持READ WRITE 支持READ ONLY 支持BEGIN支持COMMIT支持COMMIT [AND [NO] CHAIN] [[NO] RELEASE] 支持ROLLBACK支持ROLLBACK [AND [NO] CHA…

MySQL_索引失效_类型转换

1.类型转换索引失效场景SELECT * FROM tbl_name WHERE str_col=1; 列str_col上有建立索引,一个字符串类型的列给一个整数类型的值。 问题:为什么会导致索引失效? 原因:MySQL官方文档解释:The reason for this is that there are many different strings that may convert …

Thinkpad X1 Tablet gen2 键盘改USB

0 写在前面 前文Thinkpad X1 Tablet gen2 键盘固件逆向实现Ctrl与Fn换位记录了Thinkpad X1 Tablet gen2 键盘Fn和Ctrl换位的研究过程,本文记录一下该键盘改USB的过程。因为操作的时候没有留太多照片,所以尽量画图示意。 0.1 其他网友硬改成果 在硬改该键盘之前,在网上发现其…

2024年不同行业都适用的10款项目管理工具推荐,总有一款适合你!

在当今快节奏的商业环境中,项目管理工具的选择对于项目的成功至关重要。不同的行业和项目类型需要不同的工具来满足其特定的需求。本文将介绍10款适用于不同行业的项目管理工具,帮助您在2024年找到最适合您项目的解决方案。 禅道项目管理软件 禅道项目管理软件是一款开源的项…

多模态遥感技术:智慧城市更新与表达的新路径

随着智慧城市建设的不断深入,多模态航空遥感技术正成为推动城市智慧化的关键力量。多模态航空遥感通过集成多种传感器和数据源,提供了丰富的地表信息,极大地提升了城市空间数据的准确性和应用价值。多模态航空遥感技术多模态航空遥感技术利用多种传感器,如全色相机、多光谱…