Bootstrap

【C++保姆级入门】习题掌握顺序结构

  哈喽大家好,我是iecne,本期为大家带来的是CPP/C++保姆级入门教程的第五期—— 顺序结构,包教包会,快来看看吧!

此教程适合新手小白,因为语言会十分的通俗易懂,不会有很多的专业词汇出现,可以更好的掌握并且吸收,后续加上持之以恒的练习题目将会基本巩固

系列文章目录


C++保姆级入门教程(1)   变量 输出 输入

C++保姆级入门教程(2)   算术运算和赋值

C++保姆级入门教程(3)   if语句

C++保姆级入门教程(4)   循环

C++保姆级入门教程(5)   顺序结构


目录

系列文章目录

一.顺序结构是什么

二.顺序结构的用法

三.顺序结构题目练习

1.超级玛丽游戏

题目描述        

输入格式

输出格式

输入输出样例

参考答案:

2.再分肥宅水

题目描述

输入格式

输出格式

输入输出样例

题目解析:

参考答案:

3.上学迟到 

题目描述

输入格式

输出格式

输入输出样例

参考答案:

题目解析:

四.总结


一.顺序结构是什么

千里之行,始于足下。程序设计虽然花样繁多,但还是要从最简单的地方开始学习,由浅入深,直至掌握。毕竟任何复杂的工程代码都是由一行行简单的代码组成的。

我们编写计算机程序,将一个任务分解成一条一条的语句,计算机会按照顺序一条一条的执行这些语句,这就是顺序结构程序设计


二.顺序结构的用法

循序结构具体怎么做,新手小白们若没有看过

 C++保姆级入门教程(1)   变量 输出 输入

 C++保姆级入门教程(2)   ​​​​​​算术运算和赋值

可以点击链接学习学习


三.顺序结构题目练习

以下就是一些对于掌握顺序结构的题目

1.超级玛丽游戏

题目描述        

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

                ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############

输入格式

输出格式

如描述

输入输出样例

参考答案:

#include<stdio.h>
int main() {
    printf(
    "                ********\n"
    "               ************\n"
    "               ####....#.\n"
    "             #..###.....##....\n"
    "             ###.......######              ###            ###\n"
    "                ...........               #...#          #...#\n"
    "               ##*#######                 #.#.#          #.#.#\n"
    "            ####*******######             #.#.#          #.#.#\n"
    "           ...#***.****.*###....          #...#          #...#\n"
    "           ....**********##.....           ###            ###\n"
    "           ....****    *****....\n"
    "             ####        ####\n"
    "           ######        ######\n"
    "##############################################################\n"
    "#...#......#.##...#......#.##...#......#.##------------------#\n"
    "###########################################------------------#\n"
    "#..#....#....##..#....#....##..#....#....#####################\n"
    "##########################################    #----------#\n"
    "#.....#......##.....#......##.....#......#    #----------#\n"
    "##########################################    #----------#\n"
    "#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#\n"
    "##########################################    ############\n"
    );
    return 0;
}

2.再分肥宅水

题目描述

现在有 tt 毫升肥宅快乐水,要均分给 nn 名同学。每名同学需要 22 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 33 位),以及一共需要多少个杯子。

输入格式

输入一个实数 tt 和一个正整数 nn,使用空格隔开。

输出格式

输出两行。

第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。

输入输出样例

输入 

500.0

3

输出

166.667     

6

题目解析:

第一问:tt除以nn,保留三位小数即可

第二问:不难发现,杯子总数是2*n2∗n

参考答案:

#include<bits/stdc++.h>
using namespace std;
double a,b,c,i,k,j,n,m,l,s;
int main()
{
	cin>>a>>b;
	printf("%.3lf",a/b);
	cout<<endl<<b*2;
	return 0;
}

以及还有第一讲没有说的 —— printf保留指定位数小数的方法:

printf("%.指定的位数lf\n",要输出的数);

3.上学迟到 

题目描述

学校和 yyy 的家之间的距离为 ss 米,而 yyy 以 vv 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。

学校要求必须在上午 \textrm{8:00}8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一天出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数 s,vs,v,分别代表路程和速度。

输出格式

输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 \texttt{HH:MM}HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 00。

输入输出样例

输入 

100 99

输出 

07:48

参考答案:

#include<bits/stdc++.h>
using namespace std;
double s,v,m;
int n,a,t,b;
int main()
{
	cin>>s>>v;
	n=8*60+24*60;
	t=ceil(s/v)+10;
	n=n-t;
	if(n>=24*60) n-=24*60;
	b=n%60;
	a=n/60;
	if(a<10)
	{
		if(b<10) cout<<"0"<<a<<":0"<<b;
		else cout<<"0"<<a<<":"<<b;
	}
	else
	{
		if(b<10) cout<<a<<":0"<<b;
		else cout<<a<<":"<<b;
	}
	return 0;
}


题目解析:

题目上给出路程与速度,即可算出时间。

由于s与v中的时间单位为分,所以我们直接将88小时换算成分钟(直接8*608∗60好了)。

由于时间可能大于11天,我们在求出来的分钟数中加上24*6024∗60。

当我们把该时间减去行走时间和垃圾分类后,判断剩下的时间是否大于一天,如果大于一天就减去一天的时间,但你必须向上取整,不然行走时间就会少。

将剩下的时间除以6060得到出发时。将剩下的时间对6060取余得出发分

本题目的难度有点大,用到了分支(if)以及ceil( )

在本题目之中,ceil()很重要,向上取整,否则c++逻辑会向下取整导致行走时间少

(参考C171501)

四.总结

 本节课主要是讲解三道循序结构的题目,配合着保姆级教程1、2,包教包会,帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!

;