输入一组数据存入数组中,并将数据元素的个数动态地由输入函数完成。求输入数据的最大值、最小值,并通过函数参数返回所求结果;
问题分析:输入一组数据存入数组中,数据动态输入,就预示着要动态空间分配(指针的使用,malloc,free函数的运用),求最大最小值,可能要用到for循环和if语句判断;
#include<stdio.h>
#include<stdlib.h>
int* DyArray(int **pDyArray,int n)
{
*pDyArray=(int*)malloc(n*sizeof(int));
return *pDyArray;
}
void InputDyArray(int *pDyArray,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("please input number %d: ",i);
scanf("%d",&pDyArray[i]);
}
return;
}
void MaxMin(int *pDyArray,int n,int *Max,int *Min)
{
int i;
*Max=*pDyArray;
*Min=*pDyArray;
for(i=1;i<n;i++)
{
if(*Max<pDyArray[i])
{
*Max=pDyArray[i];
}
if(*Min>pDyArray[i])
{
*Min=pDyArray[i];
}
}
return;
}
void Output(int *pDyArray,int n,int Max,int Min)
{
printf("max=%d ",Max);
printf("min=%d ",Min);
return;
}
int* Destroy(int *pDyArray)
{
if(pDyArray)
{
free(pDyArray);
}
return NULL;
}
int main()
{
int i,n,min,max,*pDyArray;
printf("please input n: ");
scanf("%d",&n);
DyArray(&pDyArray,n);
InputDyArray(pDyArray,n);
MaxMin(pDyArray,n,&max,&min);
Output(pDyArray,n,max,min);
Destroy(pDyArray);
return 0;
}