用C语言和函数怎么写这个程序? 输入20个数,找出最大数和最小数,并返回原来最大数和最小数的位置。

问题描述:

用C语言和函数怎么写这个程序?
输入20个数,找出最大数和最小数,并返回原来最大数和最小数的位置。

供参考:

#include <stdio.h>
void find_num(int* a, int n, int* max_i, int* min_i)
{
    int i, max, min;
    max = min = a[0]; *max_i = 0; *min_i = 0;
    for (i = 0; i < n; i++)
    {
        if (a[i] > max)
        {
            max = a[i];
            *max_i = i;
        }
        if (a[i] < min)
        {
            min = a[i];
            *min_i = i;
        }
    }
}
int main()
{
    int a[20], i, max_i, min_i;
    for (i = 0; i < 20; i++)
        scanf("%d", &a[i]);
    find_num(a, 20, &max_i, &min_i);
    printf("max:a[%d]=%d, min:a[%d]=%d", max_i, a[max_i], min_i, a[min_i]);
    return 0;
}

可以直接遍历数组,同时比较最大和最小数,然后记录位置。