《从零开始的C语言生活》最小值对调/函数的调用案例
任务要求:完善以下程序,实现输入10个数到数组a中并找出该数组中值最小的数组元素,实现该数组元素的值和a[0]中的数对调
void inputArray( int a[], int ); //输入数到数组
void outputArray( int a[],int ); //显示数组内容
int findMinElem( int a[], int ); //查找值最小的数组元素,返回对应的下标
void ExchangeElem(int a[], int, int);//最小数组元素与a[0]对调
int main( )
代码部分:
#include <stdio.h>
void inputArray(int a[],int n){
int i;
for(i=0;i<10;i++)
{
printf("Input value:\n");
scanf("%d",&a[i]);
}
}
void outputArray(int a[],int n){
int i=0;
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
}
int findMinElem(int a[],int n){
int min=a[0],i=1,m=0;
for(i=1;i<9;i++)
{
if(a[i]<min)
{
min=a[i];
m=i;
}
}
//printf("m=%d",m);
return m;
}
int ExchangeElem(int a[],int n,int k)
{
int m, t=0;
m=findMinElem(a,0);//用m来接受findMinElem的返回值
// printf("Min=%d\n", m);
t=a[0];//将a[0]的值赋值给n
a[0]=a[m]; //与a[0]对调第一步:先将a[m]的值赋值给a[0]
a[m]=t;//第二步:将a[m]的值变成a[0] 完成对调
outputArray(a,10);
}
int main()
{
int a[10],aver,n;
inputArray(a,10);//输入数到数组
ExchangeElem(a,10,10);
// outputArray(a,10);//输出输入的结果
}
//代码的函数调用部分其实不是很好,比如很多形参都并没用,但是已经可以完成任务的要求。