輸出陣列中最大值最小值的位置
阿新 • • 發佈:2019-02-17
給定一個數組具有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 1002 int 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; }