【C++保姆级入门】习题掌握循环结构_给出 nn 和 nn 个整数 a_ia i ,求这 nn 个整数中最小值是什么。(2)

本文介绍了如何使用C++的for和while语句寻找数组中的最小值,以及处理计数问题和基本循环结构示例,包括数列求和。还提到了编程中的一些常见问题和解决方案,如使用sort函数和基础循环结构的实现方式。
摘要由CSDN通过智能技术生成

三.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;
}
③和高斯一样聪明参考答案

不守规矩是好孩子

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

mg-La3dunPY-1714718618202)]
[外链图片转存中…(img-1Xvb8rmy-1714718618202)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值