用C语言编写一个程序,求n个数中的最大值和最小值,要求用函数完成。

2024-11-27 11:43:37
推荐回答(5个)
回答1:

  1. 思路:首先设置最大最小的值都是数组第一个数,然后遍历数组,出现比当前最大值大的,修改最大值为这个数。出现比最小值小的,修改最小值为这个数。

  2. 代码

#include 
//为了方便返回,使用结构体存储最大值和最小值
typedef struct {
 int Max;
 int Min;
}MaxMin;      
//函数参数array:数组,length:数组长度。
//这里其实可以把最大值最小值作为指针传进去的。  
MaxMin GetMaxMin(int *array, int length)
{
 int i;
 MaxMin maxMin;
 if (length <= 0)
  return maxMin;
 //初始化最大值和最小值为数组第一个数
 maxMin.Max = array[0];
 maxMin.Min = array[0];
 for (i = 0; i < length; i++) {
  if (array[i] >= maxMin.Max)        
   maxMin.Max = array[i];        //比当前最大值大,修改最大值
  if (array[i] <= maxMin.Min)
   maxMin.Min = array[i];        //比当前最小值小,修改最小值
 }
 return maxMin;
}
//主函数测试
int main() {
 int length;
 int i;
 int *array;
 printf("input length of array:");
 scanf("%d", &length);
 array = (int *)malloc(sizeof(int)*length);
 for (i = 0; i < length; i++) {
  printf("input data of array(index %d):", i + 1);
  scanf("%d", array + i);
 }
 MaxMin maxMin = GetMaxMin(array, length);
 printf("Max:%d,Min:%d", maxMin.Max, maxMin.Min);
 return 0;
}

3. 运行结果

回答2:

#include 
int bubble(char *, int);
int main(int argc, const char * argv[])
{
        int a[N] = {.....};
        int max = 0, min = 0;
        if (!bubble(a, N)) {
            min = a[0];
            max = a[N-1];
        }
       return 0;
}

int bubble(char * a, int size)
{
    if (NULL == a)        return -1;
    int i = 0, j = 0, swap = 0;
    for (i = 0; i < size-1; i++) {
        for (j = 0; j < size-1-i; j++) {
            if (a[j] > a[j+1]) {
                swap = a[j];
                a[j] = a[j+1];
                a[j+1] = swap;
                }
            }
    }
    return 0;
}

回答3:

代码如下:

回答4:

void getMaxMin(int a[],int n,int *iMax,int *iMin)
{
int i;
*iMax=a[0];
*iMin=a[0];
for(i=1;i{
if (*iMax*iMax=a[i];
if (*iMin>a[i])
*iMax=a[i];
}

}

回答5:

函数就这样了。测试主函数你自己写一个 调用func就好

void func(int *a, int n, int *max, int *min)
{
int i;

*max = *min = a[0];
for(i = 1; i < n; i ++)
{
if(a[i] > *max) *max = a[i];
if(a[i]<*min) *min = a[i];
}
}