4.(20分) 从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们所在数组中的位置。
要求按如下函数原型编写程序
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void MaxMinExchang(int a[], int n);
**输入提示信息要求:
“Input n(n<=10):\n”
“Input %d numbers:\n”
**要求输入格式为:"%d"
**输出提示信息:“Exchange results:”
**要求输出格式为:"%5d"
输出数组中所有数据后换行
注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。
#include<stdio.h>
#define N 10
void ReadData(int a[], int n);
void PrintData(int a[], int n);
void MaxMinExchang(int a[], int n);
int main()
{
int n,
a[N];
printf("Input n(n<=10):\n");
scanf("%d",&n);
ReadData(a,n);
MaxMinExchang(a,n);
PrintData(a,n);
return 0;
}
void ReadData(int a[], int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
}
void PrintData(int a[], int n)
{
int i;
printf("Exchange results:");
for(i=0;i<n;i++)
printf("%5d",a[i]);
printf("\n");
}
void MaxMinExchang(int a[], int n)
{
int i,max_pos,min_pos,t;
max_pos=0;
min_pos=0;
for(i=0;i<n;i++)
{
if(a[i]>a[max_pos])
{
max_pos=i;
}
if(a[i]<a[min_pos])
{
min_pos=i;
}
}
t=a[max_pos];
a[max_pos]=a[min_pos];
a[min_pos]=t;
}