求C语言题目,要用到指针谢谢! 用一个函数求出数组中数据的最大值和最小值 函数流程 【获取数据】主

求C语言题目,要用到指针谢谢! 用一个函数求出数组中数据的最大值和最小值 函数流程 【获取数据】主函数送来数组名、元素个数 【处理数据】求出最大值和最小值的下标 【产生结果】最大值和最小值的下标

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>
//找出数组a中的最大值和最小值
void fun(double* a,int size,double* max,double* min)
{
	*max = a[0];
	*min = a[0];
	for (int i = 1; i <size; i++)
	{
		if( *(a+i) > (*max))
			(*max) = *(a+i);
		if( *(a+i) < (*min))
			(*min) = *(a+i);
	}
}
int main()
{
	double a[100],min,max;
	int i,n;
	printf("请输入数组大小:");
	scanf("%d",&n);
	printf("请输入数值:");
	for (i = 0; i < n; i++)
	{
		scanf("%lf",&a[i]);
	}
	fun(a,n,&max,&min);
	printf("最大值:%g;最小值:%g\n",max,min);
	//getchar();
	//getchar();
	return 0;
}

 

#include <stdio.h>

//通过参数返回结果
void getMaxMin(int* a, size_t len, size_t* maxIndex, size_t* minIndex)
{
	int max, min;
	max = min = *a;
	*maxIndex = *minIndex = 0;
	for (size_t i = 1; i < len; ++i)
	{
		if (*(a + i) > max)
		{
			max = *(a + i);
			*maxIndex = i;
		}
		else if (*(a + i) < min)
		{
			min = *(a + i);
			*minIndex = i;
		}
	}

}


typedef struct MyStruct
{
	size_t maxIndex;
	size_t minIndex;
}maxtype;

//通过返回值返回结果
maxtype getMaxMinStruct(int* a, size_t len)
{
	maxtype tmp = { 0 };
	/*
	int max, min;
	max = min = *a;
	for (size_t i = 1; i < len; ++i)
	{
		if (*(a + i) > max)
		{
			max = *(a + i);
			tmp.maxIndex = i;
		}
		else if (*(a + i) < min)
		{
			min = *(a + i);
			tmp.minIndex = i;
		}
	}
	//*/
	//上面注释部分可以替换成下面函数调用
	getMaxMin(a, len, &tmp.maxIndex, &tmp.minIndex);

	return tmp;
}

int main()
{
	int a[10] = { 34,6,8,7,5,63,12,14,48,29 };

	size_t maxindex, minindex;
	getMaxMin(a, 10, &maxindex, &minindex);
	printf("max:a[%zu]=%d\nmin:a[%zu]=%d\n\n", maxindex, a[maxindex], minindex, a[minindex]);

	maxtype tmp;
	tmp = getMaxMinStruct(a, 10);
	printf("max:a[%zu]=%d\nmin:a[%zu]=%d\n", tmp.maxIndex, a[tmp.maxIndex], tmp.minIndex, a[tmp.minIndex]);
	return 0;
}