找最大值最小值位置
从键盘任意输入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 <stdio.h>
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 ;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。