Loading

《从零开始的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);//输出输入的结果

}
//代码的函数调用部分其实不是很好,比如很多形参都并没用,但是已经可以完成任务的要求。

posted @ 2021-03-15 23:06  mi2ac1e  阅读(166)  评论(0编辑  收藏  举报