/*计算数组元素(该数组最大40)的最大值及最小值并交换其位置。
要求在主函数从键盘输入实际元素个数,调用函数ReadData读入每个元素的值,
调用函数MaxMinExchange求其最大值、最小值并交换最大值及最小值位置,
调用函数PrintData打印交换后的数组元素。给定的函数原型如下:
void ReadData(int a[], int n);
void MaxMinExchange(int a[], int n);
void PrintData(int a[], int n);
***输入提示信息:"Input array element number n(n<=40):\n"
***输入数据格式:"%d"
***输入提示信息:"Input array elements:\n"
注:该提示信息请放在循环体外
***要求输入格式:"%d"
***输出提示信息:"After the exchange of array elements:\n"
注:该提示信息请放在循环体外
***输出数据格式:"%d "
*/
#include <stdio.h>
void ReadData(int a[], int n);
void MaxMinExchange(int a[], int n);
void PrintData(int a[], int n);
int main()
{
int n,a[40];
do{
printf("Input array element number n(n<=40):\n");
scanf("%d",&n);
}while(n<1||n>40);
ReadData(a,n);
MaxMinExchange(a,n);
PrintData(a, n);
return 0;
}
void ReadData(int a[], int n)
{
int i;
printf("Input array elements:\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
}
void MaxMinExchange(int a[], int n)
{
int max,min,b,c,d,i;
max=a[0];
b=0;
for(i=1;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
b=i;
}
}
min=a[0];
c=0;
for(i=1;i<n;i++)
{
if(a[i]<min)
{
min=a[i];
c=i;
}
}
d=min;
a[c]=max;
a=d;
}
void PrintData(int a[], int n)
{
int i;
printf("After the exchange of array elements:\n");
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}