1801 - 求最值
设计一个从m个整数中取最小数和最大数的程序
Input
第一行输入一个整数n(0<n<=100000),表示有n组数据;
随后n组数据中,每组数据输入一个整数m(0<m<=100),代表该组数据个数,其后一行输入m个整数,空格分隔。
Output
输出两个数,第一个为这m个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。
Examples
Input
3 2 1 2 3 4 5 6 5 1 5 9 3 7
Output
1 2 4 6 1 9
Hint
当然,这道题也可以用排序来做。不过我们要求的只是最大值与最小值两个值而已,用排序太浪费了。
Solution C
#include <stdio.h> int main(){ int n, m, i, t, max, min; scanf("%d",&n); while(n--){ scanf("%d",&m); scanf("%d", &t); max=min=t; for(i = 1; i < m; i++){ scanf("%d", &t); if(max < t) max = t; if(min > t) min = t; } printf("%d %d\n", min, max); } return 0; }
Solution C++
#include<iostream> using namespace std; int main(){ int n,a[100]; cin>>n; while(n--){ int m,max,min; cin>>m; for(int i=0;i<m;i++) cin>>a[i]; max=min=a[0]; for(int j=1;j<m;j++){ if(a[j]<min) min=a[j]; if(a[j]>max) max=a[j]; } cout<<min<<" "<<max<<endl; } }
Hint
当然,这道题也可以用排序来做。不过我们要求的只是最大值与最小值两个值而已,用排序太浪费了。