从键盘任意输入10个整数,用指针变量作函数参数编程计算最大值和最小值,并返回它们所在数组中的位置。
例如,程序的一组运行结果如下:
Input 10 numbers:
-1 2 3 45 92 8 9 12 7 8↙
Max=92,Position=4,Min=-1,Position=0
#include <stdio.h>
int FindMax(int num[], int n, int *pMaxPos);
int FindMin(int num[], int n, int *pMinPos);
int main()
{
int num[10], maxValue, maxPos, minValue, minPos, i;
printf("Input 10 numbers:\n");
for (i=0; i<10; i++)
{
scanf("%d", &num[i]); // 输入10个数
}
maxValue = FindMax(num, 10, &maxPos); // 找最大值及其所在下标位置
minValue = FindMin(num, 10, &minPos); // 找最小值及其所在下标位置
printf("Max=%d,Position=%d,Min=%d,Position=%d\n",
maxValue, maxPos, minValue, minPos);
return 0;
}
//函数功能:求有n个元素的整型数组num中的最大值及其所在下标位置,函数返回最大值
int FindMax(int num[], int n, int *pMaxPos)
{
int i, max;
max = num[0];//假设num[0]为最大值
*pMaxPos=0;//假设最大值在数组中的下标位置为0
for (i=1; i<n; i++)
{
if (num[i] > max)
{
max = num[i];
*pMaxPos=i; //pMaxPos指向最大值数组元素的下标位置
}
}
return max;
}
//函数功能:求有n个元素的整型数组num中的最小值及其所在下标位置,函数返回最小值
int FindMin(int num[], int n, int *pMinPos)
{
int i, min;
min = num[0]; //假设num[0]为最小
*pMinPos=0; //假设最小值在数组中的下标位置为0
for (i=1; i<10; i++)
{
if (num[i] < min)
{
min = num[i];
*pMinPos=i; //pMinPos指向最小值数组元素的下标位置
}
}
return min;
}