找最大值最小值位置
从键盘任意输入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 ;
}