C/C++语法练习之顺序结构篇

news/2024/3/29 19:51:05/文章来源:https://blog.csdn.net/qq_51646682/article/details/129236208

名人说:

如果你问一个善于溜冰的人怎样获得成功时,
他会告诉你:“跌倒了,爬起来”,这就是成功。——牛顿

专栏:牛客刷题

顺序结构篇

        • 〇、知识引入
        • 一、内容
          • 1004-学姐的“Helloworld”
          • 1005-乘法表
          • 1019-helloworld
          • 1029-计算三角形的周长和面积
          • 1031-时间转换
          • 1032-温度转换
          • 1036-组队比赛
          • 1038-长方体
          • 1041-纸牌
          • 1042-Kaiji
          • 1043-珂朵莉的假动态仙人掌
        • 二、总结

〇、知识引入

顺序结构是什么?

顺序结构是一种程序结构,它指的是按照语句的书写顺序,从上到下依次执行顺序结构是最简单的程序结构,它可以独立使用或与其他结构组合使用。

例如,两数交换这个程序,就是典型的顺序结构程序:

#include<iostream>
using namespace std;int main()
{int a,b,t;cin>>a>>b;cout<<"交换前a与b的值为:"<<a<<" "<<b<<endl;t = a;a = b;b = t;cout<<"交换后a与b的值为:"<<a<<" "<<b<<endl;return 0;
}

那怎么能直观地看出它是顺序结构呢?咱们可以画一个流程图,如下图,从图中可以直观地看出该程序结构是顺序结构。

在这里插入图片描述

看到这,你应该对顺序结构有了初步的了解,接下来,可以结合习题进行练习,加深对顺序结构的认识,具体内容如下:

一、内容

顺序结构篇题目及作答如下:

1004-学姐的“Helloworld”

题目描述

zafu又迎来了新一届的小可爱们,19级的大家突然变成了学长学姐。

在这些学长学姐中,有那么一位备受欢迎的学姐,她各个方面都非常优秀,但是就是对编程提不起兴趣。

上学期的时候学姐决定从头开始复习C语言,刷起了PTA上的习题集,可是第一题的输出"Hello world!“她就做错了,输出成了"Helo word!”。

为了安慰这位可爱的学姐,学弟学妹们请同样输出"Helo word!"来告诉学姐不止她一个人会犯这个错。

输入描述:

无输入数据。

输出描述:

输出"Helo word!"即可(引号代表这是个字符串,请别输出引号)

#include<iostream>
using namespace std;int main()
{cout<<"Helo word!"<<endl;//直接输出return 0;
}
1005-乘法表

题目描述

输出九九乘法表,输出格式见样例。

输入描述:

此题没有输入

输出描述:

输出乘法表,对齐方式见样例输出

示例1
输入:

输出:
如下

1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#include<iostream>
using namespace std; int main()
{  for (int i = 1; i < 10; i++)//双层循环 {for (int j = 1; j <= i; j++){    if (j==1){cout<<j<<"*"<<i<<"= "<<i*j<<" ";}else if(j==2&&i<=4){cout<<j<<"*"<<i<<"= "<<i*j<<" ";}else if (j==3&&i==3){cout<<j<<"*"<<i<<"= "<<i*j<<" ";}else cout<<j<<"*"<<i<<"="<<i*j<<" ";}cout<<endl;}return 0;
}
1019-helloworld

题目描述

大家c语言的学的第一个程序应该就是输出hello world,我们知道每一个字符都有一个ASCII码,请你输出hello world每一个字符的ASCII码+1对应的那个字符.比如a对应ASCII码的下一个字符是b.

输入描述:

输出描述:
按题意输出

#include<iostream>
#include<cstring>
using namespace std;int main()
{char str[20]="hello world";for (int i = 0; str[i]!='\0'; i++){cout<<char(str[i]+1);//ASCII码+1}return 0;
}
1029-计算三角形的周长和面积

题目描述
根据给出的三角形3条边a, b, c,计算三角形的周长和面积。

数据范围:
0<a,b,c≤100000

输入描述:
一行,三角形3条边(能构成三角形),中间用一个空格隔开。

输出描述:
一行,三角形周长和面积(保留两位小数),中间用一个空格隔开,输出具体格式详见输出样例。

示例1
输入
3 3 3

输出
circumference=9.00 area=3.90

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;int main()
{double a = 0.0,b = 0.0,c = 0.0;cin>>a>>b>>c;double circumference = 0.0,area = 0.0;circumference = a + b + c;//C△ = a + b + cdouble p = 0.0;p = circumference / 2.0;area = sqrt(p*((p-a)*(p-b)*(p-c)));//海伦公式 S△=sqrt(p*(p-a)*(p-b)*(p-c))cout<<fixed<<setprecision(2)<<"circumference="<<circumference<<" "<<"area="<<area<<endl;return 0;
}
1031-时间转换

题目描述
给定秒数 seconds ,把秒转化成小时、分钟和秒。

数据范围:
0<seconds<100000000

输入描述:
一行,包括一个整数,即给定的秒数。

输出描述:
一行,包含三个整数,依次为输入整数对应的小时数、分钟数和秒数(可能为零),中间用一个空格隔开。

示例1
输入
3661

输出
1 1 1

#include<iostream>
using namespace std;int main()
{long long seconds = 0;long long hour,minute,second;cin>>seconds;//1 hour = 60 min//1 min = 60 shour = seconds / 3600;minute = seconds / 60 % 60;second = seconds % 60;cout<<hour<<" "<<minute<<" "<<second<<endl;return 0;
}
1032-温度转换

题目描述
输入一个浮点数f, 表示华氏温度, 输出对应的摄氏温度c , c=5/9*(f-32)

输入描述:
输入一个浮点数f(1 <= f<= 100000)

输出描述:
输出浮点数,保留3位小数

示例1
输入
100

输出
37.778

#include<iostream>
#include<iomanip>
using namespace std;int main()
{double f,c;cin>>f;//根据题目中所给转换公式c=5/9*(f-32) c = 5.0 / 9 * (f-32);cout<<fixed<<setprecision(3)<<c<<endl;return 0;
}
1036-组队比赛

题目描述
Compute, Cubercsl, SuperSodaSea, Ybmj 准备组队参加 “科大讯飞” 赞助的 CrossFire 比赛。
科大讯飞股份有限公司成立于1999年,是亚太地区知名的智能语音和人工智能上市企业。自成立以来,长期从事语音及语言、自然语言理解、机器学习推理及自主学习等核心技术研究并保持了国际前沿技术水平;积极推动人工智能产品研发和行业应用落地,致力让机器"能听会说,能理解会思考",用人工智能建设美好世界。
这场比赛需要两人一队组队参加,他们不知道怎么分组。已知他们的 CrossFire 分数分别为 a, b, c, d,现在想要把他们两两分为一队,使得他们的实力比较平均,也就是两队的实力差尽量小。
这里定义两队的实力差为每队的 CrossFire 分数之和的差值,现在他们想要知道这个实力差最小是多少。

输入描述:

仅一行,包含四个整数 a, b, c, d (1≤a,b,c,d≤3681),中间以空格分隔,分别表示四个人的 CrossFire 分数。

输出描述:
在一行输出一个整数,表示两个队伍实力差的最小值。

示例1
输入
2 1 3 4
输出
0

示例2
输入
2263 2110 2172 2109
输出
90

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;int main()
{int a,b,c,d;cin>>a>>b>>c>>d;int minn=0,maxn=0;//找出最小值minn = min(min(a,b),min(c,d));//找出最大值maxn = max(max(a,b),max(c,d));int ans = 0;//两个队伍实力差的最小值就是,两个队伍CrossFire分数之和的差值最小//即总的减去2倍的(最大值+最小值)ans = fabs((a+b+c+d) - 2*(maxn+minn));cout<<ans<<endl;return 0;
}
1038-长方体

题目描述
给出共享长方体一个顶点的三个面的面积,求它十二条边的边长和。

输入描述:
一行三个整数a, b, c表示面积(1 <= a, b, c <= 10000)。

输出描述:
一行一个整数表示边长和。

示例1
输入
1 1 1
输出
12

示例2
输入
4 6 6
输出
28

#include<iostream>
#include<cmath>
using namespace std;int main()
{int a,b,c;int x,y,z;cin>>a>>b>>c;//求出长宽高三边长x = sqrt(a*b/c);y = sqrt(a*c/b);z = sqrt(b*c/a);//长宽高之和乘以4就是边长和cout<<4*(x+y+z)<<endl;return 0;
}
1041-纸牌

题目描述
小w想和你van纸牌
小w有两张纸牌,两张纸牌上都有相同的正整数n
每一轮一张纸牌上的数都可以减去小于等于另外一张纸牌上的数的数
每一轮只能操作和上轮不同的纸牌
小w想知道三轮之后两纸牌上数字之和的最小值
注意,不能减为负数

输入描述:
第一行1个正整数n。(1 ≤ n ≤ 1000000000)

输出描述:
一行一个整数
表示三轮之后两纸牌上数字和的最小值

示例1
输入
2
输出
1

说明
样例解释:两张ab上数字分别为2,第一轮,a张减去1(1 <= (b = 2)) 第二轮b减去1(1 <= (a = 1)) ,第三轮a减去1(1 <= (b = 1)),游戏结束a+b = 1,该结果为最可行优解之一

#include<iostream>
#include<cstdio>
using namespace std;int main()
{long long n;scanf("%lld",&n);long long a = n,b = n;//按照样例解释进行编写即可a -= b/2;b -= (b-a);a -= b;printf("%lld\n",a+b);return 0;
}
1042-Kaiji

题目描述
Kaiji正在与另外一人玩石头剪刀布。双方各有一些代表石头、剪刀、布的卡牌,每局两人各出一张卡牌,根据卡牌的内容决定这一局的胜负。胜负规则为:石头赢剪刀、剪刀赢布、布赢石头、相同为平局。每张卡牌至多被使用一次。
已知双方的卡牌数量,问Kaiji最多赢几局?

输入描述:
一行六个数字0 ≤ a, b, c, d, e, f ≤ 50,a,b,c分别表示Kaiji的石头、剪刀、布的牌的数量,d,e,f分别表示此时另一人的石头、剪刀、布的牌的数量。

输出描述:
一个整数表示Kaiji最多赢几局。

示例1
输入
29 7 41 14 12 42
输出
33

#include<iostream>
using namespace std;int main()
{int a,b,c,d,e,f,x1,x2,x3,y;cin>>a>>b>>c>>d>>e>>f;//kaiji赢最多局//则让其尽可能多的让a与e,b与f,c与d配合x1 = (a<e)?a:e;x2 = (b<f)?b:f;x3 = (c<d)?c:d;y = x1+x2+x3;cout<<y<<endl;return 0;
}
1043-珂朵莉的假动态仙人掌

题目描述
珂朵莉想每天都给威廉送礼物,于是她准备了n个自己的本子
她想送最多的天数,使得每天至少送一个本子,但是相邻两天送的本子个数不能相同
珂朵莉最多送几天礼物呢?

输入描述:
第一行一个整数n(1 <= n <= 1000000000)。

输出描述:
第一行输出一个整数,表示答案

输入
4
输出
3

说明
第一天送1个本子
第二天送2个本子
第三天送1个本子

#include<iostream>
using namespace std;int main()
{int n;cin>>n;int ans = 0;int k;//序列应该是 1 2 1 2 1 2 1...//如果k%3==0,说明最后一天送了两个本子//如果不等于0,说明最后一天送了1个本子,总天数要在之前的基础上加1k = n%3;if(k==0){   ans = 2 * n / 3;}else ans = (n/3) * 2 + 1;cout<<ans<<endl;return 0;
}

二、总结

       通过语法顺序结构篇的练习,对顺序结构有了更为深刻的认识,在编程练习时,也遇到了一些困难,比如在遇到一些数学思维题时,有时你如果能够get到题意所想表达的,推理出来了,那么它就显得很简单,但是有时get不到,可能尝试了诸多方法,仍然是一头雾水

       当然这也反映了一个问题,就是练习的匮乏,以及没有对所学知识及时巩固复习,在发现此问题后,我决定对当时有困惑的题进行总结,并书写于此,未来我也会不断地尝试与改进,以此为梯,努力攀登,去见更好的自己!

Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
如果对大家有帮助的话,希望大家能多多点赞+关注!这样我动力会更足哦! ღ( ´・ᴗ・` )比心

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

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

相关文章

TCP粘包|拆包和解决方案

1 产生原因TCP是面向连接的&#xff0c;面向流的&#xff0c;提供高可靠性服务。收发两端&#xff08;客户端和服务端&#xff09;都要有一一成对的socket&#xff0c;因此&#xff0c;发送端为了将多个发给接收端的包&#xff0c;更有效的发给对方&#xff0c;使用了优化算法&…

【算法题】最大矩形面积,单调栈解法

力扣&#xff1a;84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 题意很简单&#xff0c;翻译一下就是&#xff1a;求该图中…

预训练BERT

与PTB数据集相比&#xff0c;WikiText-2数据集保留了原来的标点符号、大小写和数字&#xff0c;并且比PTB数据集大了两倍多。 我们可以任意访问从WikiText-2语料库中的一对句子生成的预训练&#xff08;遮蔽语言模型和下一句预测&#xff09;样本。 原始的BERT有两个版本&…

BI的作用,体现在企业的哪些方面

对市场异常敏感的商业世界自然不会放过获取数字经济的机会&#xff0c;以国企和央企为首的众多企业开始进行数字化转型&#xff0c;通过信息化建设&#xff0c;部署商业智能BI来完成转型工作。 为什么会出现BI 有一点可能出乎很多人意料&#xff0c;虽然 BI 是因为信息化、数…

智能家居项目(六)之摄像头模块

目录 一、树莓派mipg-streamer实现监控功能调试 1、实现基本思路 2、安装摄像头模块 2.1、在安装sudo apt-get install libv4l-dev 的命令时报错 3、开启摄像头 以下内容是针对树莓派是stretch版本的修改办法&#xff1a; 一、树莓派mipg-streamer实现监控功能调试 1、…

spring boot maven打包jar包太大,怎么办?这个方法解决你的烦恼

在springboot maven项目中&#xff0c;有两种打包方式&#xff0c;一种是war包&#xff0c;一种是jar&#xff0c;今天我们讲一下jar的打包方式。但是在jar包打包只要我们发现&#xff0c;我们的项目jar太大了&#xff0c;每次上传到服务器的时候非常的慢&#xff0c;接下来我们…

大数据处理各组件概念及作用

一、数据采集&#xff1a; 1.1 Flume集群&#xff1a;数据采集工具&#xff0c;如写脚本将不同源端的数据采集后进行数据存储&#xff0c;或推送至Kafka等&#xff1b; 1.2 FTP集群&#xff1a;文件传输工具&#xff1b; 1.3 Kafka集群&#xff1a;消息队列&#xff0c;未避免…

高压放大器在应力波法套筒灌浆密实度检测研究中的应用

实验名称&#xff1a;高压放大器在应力波法套筒灌浆密实度检测研究中的应用研究方向&#xff1a;无损检测测试目的&#xff1a;钢筋套筒灌浆连接技术被广泛应用于装配式建筑节点连接中&#xff0c;但灌浆不密实将导致节点失效的风险。因此&#xff0c;施工中对套筒灌浆的密实度…

Spark 分析计算连续三周登录的用户数

前言&#xff1a;本文用到了窗口函数 range between&#xff0c;可以参考这篇博客进行了解——窗口函数rows between 、range between的使用 创建数据环境 在 MySQL 中创建数据测试表 log_data&#xff1a; create table if not exists log_data( log_id varchar(200) comm…

代码随想录【Day27】| 39. 组合总和、40. 组合总和 II、131. 分割回文串

39. 组合总和 题目链接 题目描述&#xff1a; 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明&#xff1a; 所有数字&#xff08;包括 tar…

taobao.top.secret.bill.detail( 服务商的商家解密账单详情查询 )

&#xffe5;免费必须用户授权 服务商的商家解密账单详情查询&#xff0c;仅对90天内的账单提供SLA保障。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 响应参数 点击获取key和secret 请求示例 TaobaoClient…

js 拖动--动态改变div的宽高大小

index.html 如下&#xff1a;&#xff08;可以新建一个index.html文件直接复制&#xff0c;打开运行&#xff09; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible&qu…

Mybatis源码学习笔记(五)之Mybatis框架缓存机制原理解析

1 Mybatis框架的缓存模块 MyBatis 内置了一个强大的事务性查询缓存机制&#xff0c;它可以非常方便地配置和定制。Mybatis框架中的缓存分为一级缓存和二级缓存&#xff0c;三级缓存基本都要借助自定义缓存或第三方服务来进行实现。但本质上是一样的&#xff0c;都是借助Cache接…

【Python学习笔记】第十九节 Python 面向对象(一)

在现实世界中&#xff0c;随处可见的一种事物就是对象&#xff0c;对象是事物存在的实体&#xff0c;如学生、汽车等。人类解决问题的方式总是将复杂的事物简单化&#xff0c;于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分&#xff0c;即静态部分与…

SSL证书对虚拟主机的用处有哪些?

虚拟主机是指在同一台服务器上&#xff0c;通过不同的域名或IP地址为多个网站提供服务的一种网络主机。而SSL证书则是一种数字证书&#xff0c;它用于加密网站与用户之间的通信&#xff0c;确保数据传输的安全性和完整性。在虚拟主机上&#xff0c;SSL证书有以下几个用处&#…

HiveSql一天一个小技巧:如何巧用分布函数percent_rank()求去掉最大最小值的平均薪水问题

0 问题描述参考链接(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水&#xff08;字节跳动&#xff09;_莫叫石榴姐的博客-CSDN博客文中已经给出了三种解法&#xff0c;这里我们借助于此题&#xff0c;来研究如何用percent_rank()函数求解&#xff0c;简化解题思路…

深入理解C#的协变和逆变及其限制原因

阅读本文需要的一些前置知识&#xff1a; C#基本语法、C#的泛型使用、C#的运行过程 由于协变和逆变存在一些细节&#xff0c;在阅读时请注意“接口”和“类型”的差异&#xff0c;此外&#xff0c;文中有可能在不同的语境中将“结构体”和“值类型”混用&#xff0c;但表达的同…

深入浅出1588v2(PTP)里的时间同步原理

1.时间同步1.1 单步同步(OneStep)单步同步最为简单&#xff0c;master向slave发送一个sync的同步包&#xff0c;同步包里带有这条信息发送时master的当前时间t1&#xff0c;假如这条信息从master传输到slave需要的传输时间是D&#xff0c;那么slave收到信息时&#xff0c;maste…

BIM小技巧丨关于如何在Revit明细表中显示门窗面积

在明细表中显示门窗面积(以门明细表为例)在新建一个门明细表后&#xff0c;可以发现在Revit中不能直接使用明细表统计门窗面积。 这时&#xff0c;可以通过使用添加“计算值”的方式来处理&#xff0c;得到如下图所示&#xff0c;两种不同的面积统计结果&#xff1a; 除此之外&…

前端基础之CSS扫盲

文章目录一. CSS基本规范1. 基本语法格式2. 在HTML引入CSS3. 选择器分类二. CSS常用属性1. 文本属性2. 文本格式3. 背景属性4. 圆角矩形和圆5. 元素的显示模式6. CSS盒子模型7. 弹性布局光使用HTML来写一个前端页面的话其实只是写了一个大体的框架, 整体的页面并不工整美观, 而…