输出数组中最大值最小值的位置

来源:互联网 发布:淘宝怎么捡漏 编辑:程序博客网 时间:2024/05/16 08:43

给定一个数组具有n(n <= 1000)个数的数组,输出这个数组中最大值与最小值的位置。


Input

多组样例。每组一行,每行第一个数字是n,后面是n个整数(int 32表示范围内)。n=0表示输入数据的结束。


Output

最大数与最小数出现的位置,中间用空格分隔。如果最大数出现多次,请输出它第一次出现的位置;如果最小数出现多次,请输出它最后一次出现的位置。


Sample Input

3 1 2 3

4 1 1 2 3

0

Sample Output

0 2

1 3

#include <stdio.h>#include <stdlib.h>#define maxn 1002int arr[maxn];int judge_max(int arr[],int n){    int index = 0;    int i;    int max = arr[0];    for(i = 0;i < n; i++)    {      if(arr[i] > max)      {          max = arr[i];          index = i;      }    }    return index;}int judge_min(int arr[],int n){    int index = 0;    int i;    int min = arr[0];    for(i = 0;i < n; i++)    {      if(arr[i] <= min)      {          min = arr[i];          index = i;      }    }    return index;}int main(){    int indexmax,indexmin;    int n,i;    int max_num,min_num;    while(scanf("%d",&n)!=EOF && n)    {        indexmax = 0,indexmax = 0;        scanf("%d",&arr[0]);        max_num = arr[0],min_num = arr[0];        for(i = 1;i < n; i++){            scanf("%d",&arr[i]);        }        indexmin = judge_min(arr,n);        indexmax = judge_max(arr,n);        printf("%d %d\n",indexmin,indexmax);    }    return 0;}


原创粉丝点击