C++洛谷题解至此已经有30期了,已经完成了两篇题单了,所以我们是时候改进一下文章格式了
1.将原来“无组织,无纪律”的题名、题目等正规化
2.把原来的题目分析设在了“分析题目”里面
3.把原来与题目分析混在一团的代码设在了“示例代码”里面
4.正式取消了“题目传送门”
5.对“文章摘要”进行了改进,把格式改为“C++洛谷题解,题号:···,题目:···”的形式
现在正式进入洛谷题单第三篇【循环】
题目信息
题名:找最小值
题目:给出 n(n≤100) 和 n 个整数 a[i](0≤a[i]≤1000),求这 n 个整数中最小值是什么。
输入:无
输出:无
分析题目
这道题如果会sort函数就无比的简单,如果不会sort函数就...,还是不难,哈哈哈。先简略的说一下用sort函数解题的思路:
- 声明一个整数n和一个数组a[1001]
- 输入n和a[i]的值
- sort函数排序(连cmp都不用写,爱了)
- 输出a[1]
如果用sort函数解题这就完了。下面是不用sort函数解题的思路(毕竟这是【入门3】)
如果不用sort函数这道题也不是很难。思路如下:
- 声明整型变量n和数组a[1001]
- 输入n和a[i]的值
- 声明一个整型min,并且初始化为0
- 再次使用for循环,并用if语句判断
- 如果a[i]比min小a[i]就等于min
- 输出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;
}