思路:首先设置最大最小的值都是数组第一个数,然后遍历数组,出现比当前最大值大的,修改最大值为这个数。出现比最小值小的,修改最小值为这个数。
代码
#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. 运行结果
#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;
}
代码如下:
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];
}
}
函数就这样了。测试主函数你自己写一个 调用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];
}
}