C++洛谷题解(30)——P5718

C++洛谷题解至此已经有30期了,已经完成了两篇题单了,所以我们是时候改进一下文章格式了

1.将原来“无组织,无纪律”的题名、题目等正规化

2.把原来的题目分析设在了“分析题目”里面

3.把原来与题目分析混在一团的代码设在了“示例代码”里面

4.正式取消了“题目传送门”

5.对“文章摘要”进行了改进,把格式改为“C++洛谷题解,题号:···,题目:···”的形式

现在正式进入洛谷题单第三篇【循环】

题目信息

题名:找最小值

题目:给出 n(n≤100) 和 n 个整数 a[i]​(0≤a[i]​≤1000),求这 n 个整数中最小值是什么。

输入:

输出:

分析题目

这道题如果会sort函数就无比的简单,如果不会sort函数就...,还是不难,哈哈哈。先简略的说一下用sort函数解题的思路:

  1. 声明一个整数n和一个数组a[1001]
  2. 输入n和a[i]的值
  3. sort函数排序(连cmp都不用写,爱了)
  4. 输出a[1]

如果用sort函数解题这就完了。下面是不用sort函数解题的思路(毕竟这是【入门3】) 


如果不用sort函数这道题也不是很难。思路如下:

  1. 声明整型变量n和数组a[1001]
  2. 输入n和a[i]的值
  3. 声明一个整型min,并且初始化为0
  4. 再次使用for循环,并用if语句判断
  5. 如果a[i]比min小a[i]就等于min
  6. 输出min的值 

由此可见,还是sort函数好呀。

示例代码

sort函数:

#include<bits/stdc++.h>//万能头
using namespace std;
int n,a[1001];//声明的一个变量一个数组
int main(){
    cin>>n;//输入n的值
    for(int i=1;i<=n;i++){//循环n遍
        cin>>a[i];//输入a[i]的值
    }
    sort(a,a+n);/万能sort函数从小到大排序
    cout<<a[1];//输出a[1],就等于最小值
    //千万不要写成a[0]的形式,因为那样记录的是没有任何操作的0
    return 0;
}

复制版:

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

非sort函数:

#include<bits/stdc++.h>
using namespace std;
int n,a[1001];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    int min=2147483647;
    for(int i=1;i<=n;i++){
        if(a[i]<min){
            min=a[i];
        }
    }
    cout<<min;
    return 0;
}
posted @ 2022-07-19 19:47  GitTJBKBeta  阅读(50)  评论(0编辑  收藏  举报