c语言-找最大值最小值位置

时间:2024-12-17 07:15:13

找最大值最小值位置

从键盘任意输入10个整数,计算并输出最大值和最小值及其它们在数组中的下标位置。

程序运行结果示例1:

Input 10 numbers:1 2 3 4 5 6 7 8 9 10

max=10,pos=9

min=1,pos=0

程序运行结果示例2:

Input 10 numbers:2 4 5 6 8 10 1 3 5 7 9

max=10,pos=5

min=1,pos=6

程序:

#include <>
int FindMax(int a[], int n, int *pMaxPos);
int FindMin(int a[], int n, int *pMinPos);
int main()
{
    int a[10], maxValue, maxPos, minValue, minPos, i;
    printf("Input 10 numbers:");
    for (i=0; i<10; i++)
    {
        scanf("%d", &a[i]);             // 输入10个数
    }
 
    maxValue = FindMax(a, 10, &maxPos);  // 找最大值及其所在下标位置
    minValue = FindMin(a, 10, &minPos);  // 找最小值及其所在下标位置
    printf("max=%d,pos=%d\n", maxValue, maxPos);
    printf("min=%d,pos=%d\n", minValue, minPos);
    return 0;
}
 
//函数功能:求有n个元素的整型数组a中的最大值及其所在下标位置,函数返回最大值
int FindMax(int a[], int n, int *pMaxPos)
{
    int i, max;
    max = a[0];             //假设a[0]为最大值
    *pMaxPos = 0;           //假设最大值在数组中的下标位置为0
     
    for (i=1; i<n; i++)
    {
        if (a[i] > max)
        {
            max = a[i];
            *pMaxPos = i;     //pMaxPos指向最大值数组元素的下标位置
        }
    }
    return max ;
}
 
//函数功能:求有n个元素的整型数组a中的最小值及其所在下标位置,函数返回最小值
int FindMin(int a[], int n, int *pMinPos)
{
    int i, min;
    min = a[0];              //假设a[0]为最小
    *pMinPos = 0;            //假设最小值在数组中的下标位置为0
     
    for (i=1; i<10; i++)
    {
        if (a[i] < min)
        {
            min = a[i];
            *pMinPos = i;  //pMinPos指向最小值数组元素的下标位置
        }
    }
    return min ;
}