1801 - 求最值

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

设计一个从m个整数中取最小数和最大数的程序

题目输入

第一行输入一个整数n(0<n<=100000),表示有n组数据;

随后n组数据中,每组数据输入一个整数m(0<m<=100),代表该组数据个数,其后一行输入m个整数,空格分隔。

 

题目输出

输出两个数,第一个为这m个数中的最小值,第二个为这五个数中的最大值,两个数字以空格格开。

输入/输出样例

输入格式

3
2
1 2
3
4 5 6
5
1 5 9 3 7

输出格式

1 2
4 6
1 9

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;
}

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;
	}
}

Java解答

import java.util.Scanner;
public class Main
{
	public static void main(String[] args)
	{
		Scanner sc=new Scanner(System.in);
		int T=sc.nextInt();
		while(T-->0)
		{
			int n=sc.nextInt();
			int arr[]=new int[n];
			for(int i=0;i<n;i++)
			{
				arr[i]=sc.nextInt();
			}
			insertSort(arr);
			System.out.println(arr[0]+" "+arr[n-1]);
		}
	}
	public static void insertSort(int arr[])
	{
	    for (int i = 1; i < arr.length; i++)
	    {
	        if (arr[i - 1] > arr[i])
	        {
	            int temp = arr[i];
	            int j = i;
	            while (j > 0 && arr[j - 1] > temp)
	            {
	                arr[j] = arr[j - 1];
	                j--;
	            }
	            arr[j] = temp;
	        }
	    }
	}
}