C++保姆级入门教程(7)—— 循环结构

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

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


目录

一.循环结构是什么

二.循环结构的用法

三.for语句和while语句

1.找最小值

①题目描述

②参考答案

四.多重循环

1. [NOIP2013 普及组]计数问题  (CSDN第二期竞赛第一题)

①题目描述

②参考答案

③题目解析

五.循环结构程序设计案例

1.数列求和

①题目描述

②没高斯聪明参考答案

③和高斯一样聪明参考答案

六.总结

系列文章目录


一.循环结构是什么

虽然计算机可以在短时间批量处理成千上万条指令,但是不少问题中有许多规律性的重复操作,比如说计算几百个学生的平均分,或者对上万人的名单进行排序。仅使用顺序或者分支结构,对每一步操作都写出对应的语句是不可能的;但可以使用循环语句让计算机反复执行类似的任务。

本章将会介绍循环结构程序设计,同时前面的内容也会进一步的巩固。学完这一章,读者可以初步感受到计算机高效解决问题的能力。


二.循环结构的用法

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

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

可以点击链接学习学习


三.for语句和while语句

1.找最小值

①题目描述

给出 nn 和 nn 个整数 a_iai​,求这 nn 个整数中最小值是什么。

输入格式

第一行输入一个正整数 nn,表示数字个数。

第二行输入 nn 个非负整数,表示 a_1,a_2 \dots a_na1​,a2​…an​,以空格隔开。

输出格式

输出一个非负整数,表示这 nn 个非负整数中的最小值。

输入输出样例

输入 #

8
1 9 2 6 0 8 1 7

输出 #1

0

说明/提示

数据保证,n\le100n≤100 且 0\le a_i \le 10000≤ai​≤1000。

②参考答案

 这个用到了数组和sort函数的AC code

#include<bits/stdc++.h>
using namespace std;
int n,a[10001];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+n+1);
    cout<<a[1];
    return 0;
}

普通简单的方法如下

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,in,ans=1e9;//ans大点后面min更好比较,否则答案会变成0
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>in;
		ans=min(ans,in);
	}
	cout<<ans;
	return 0;
}

这行代码不许要解释吧,看不懂见上一篇文章C++保姆级入门教程(6)—— 分支结构_iecne的博客-CSDN博客

四.多重循环

1. [NOIP2013 普及组]计数问题  (CSDN第二期竞赛第一题)

①题目描述

试计算在区间 11 到 nn 的所有整数中,数字 xx(0\le x\le90≤x≤9)共出现了多少次?例如,在 11 到 1111 中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 11 出现了 44 次。

输入格式

22 个整数 n,xn,x,之间用一个空格隔开。

输出格式

11 个整数,表示 xx 出现的次数。

输入输出样例

输入#1

11 1

输出 #1

4

说明/提示

对于 100\%100% 的数据,1\le n\le 10^61≤n≤106,0\le x \le 90≤x≤9。

②参考答案

#include<iostream>
using namespace std;
int x,ans,n,i,q;
int main()
{
    cin>>x>>n;
    for(i=1;i<=x;i++)
    {
      	q=i;
      	while(q>0)
      	{
      		if(q%10==n)++ans;
      		q/=10;
      	}
    }
    cout<<ans<<endl;
    return 0;
}

③题目解析

这就是一个基础的拆分数字,从1-x重复的循环,判断每一个数

如是1,1%10……1,%10就是提取个位数,每一次循环再除以10,就可以提取到每一位数的数字,再用if判断是否n

请各位大佬看下此代码是否有问题,这个代码提交到CSDN第二期竞赛中不给分!!!强烈怀疑评分系统的问题

五.循环结构程序设计案例

1.数列求和

①题目描述

计算 1+2+3+\cdots+(n-1)+n1+2+3+⋯+(n−1)+n 的值,其中正整数 nn 不大于 100。由于你没有高斯聪明,所以你不被允许使用等差数列求和公式直接求出答案。

输入格式

输入一个正整数 nn。

输出格式

输出一个正整数,表示最后求和的答案。

输入输出样例

输入 #1

100

输出 #1

5050

说明/提示

数据保证,1 \leq n \leq 1001≤n≤100。

②没高斯聪明参考答案

我真的无语。。。那么就规规矩矩地用for循环吧

话不多说,上代码

#include<iostream>
using namespace std;
int main()
{
    int a=0,n; //定义,a初始化为0,
    cin>>n;    //输入
    for(int i=1;i<=n;i++)//循环,从1到n
    {
    	a+=i; //累加求和
    }
    cout<<a;//输出
    return 0;
}

③和高斯一样聪明参考答案

不守规矩是好孩子

等差数列上代码

#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,sum;
int main()
{
	cin>>n;
	cout<<(n+1)*n/2;
	return 0;
}

六.总结

本节课主要是讲解三道循序结构的题目,至此循环结构(for  /  while)思想博主已经分享完了,相信大家对这个逻辑有了一定的理解,大家可以自己动手敲敲代码,感受一下

包教包会,帅的人已然点赞收藏关注,而丑的人还在犹豫,被犹豫了,快三连吧!


系列文章目录

 本期收录于博主的专栏——C++保姆级入门教程,适用于编程入门初学者,感兴趣的朋友们可以订阅,查看其它专栏。

C++保姆级入门教程_iecne的博客-CSDN博客

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

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

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

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

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

C++保姆级入门教程(6)   分支结构

C++保姆级入门教程(7)   循环结构


感谢每一个观看本篇文章的朋友,更多精彩敬请期待:iecne的博客_CSDN博客-C++保姆级入门教程领域博主

文章存在借鉴,如有侵权请联系修改删除!

猜你喜欢

转载自blog.csdn.net/CSDN_linyanchen/article/details/126010017