C语言 查找一个一维数组中最大值和最小值的位置,并交换最大值和最

C语言 查找一个一维数组中最大值和最小值的位置,并交换最大值和最小值的位置

1、打开visual studio,创建一个控制台应用程序,在Main方法中,定义一个整型数组,用于演示数组的最大值、最小值,以及交换他们的位置。

2、在Main方法中,定义四个变量,用于暂存最大、最小值,以及他们的序号。

3、通过for循环,找出数组中,最大的值和序号、最小的值和序号,存入上面定义的四个变量中。

4、最终通过数组的下标给最大、最小值重新赋值,就将他们交换位置了。在原来最小值的下标位置赋值找出来的最大值。原来最大值得下标位置赋值找出来的最小值。

5、在交换完成值之后,使用循环输出数组的值,从结果可以看出,这两个位置的值已经交换了位置。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-01
#include<stdio.h>
int main(){
    int a[10] = {12,45,324,54,23,546,765,2435,1343,54};
    int min=a[0],max=a[0],mmin=1,mmax=1;//min记录最小值,mmin记录最小值得位置
    for(int i=1;i<a.length;i++){
        if(a[i]>max){
            max=a[i];
            mmax=i;
        }
        if(a[i]<min){
            min=a[i];
            mmin=i;
        }
    }
    //交换最大值与最小值的位置
    int temp;
    temp = a[mmin];
    a[mmin] = a[mmax];
    a[mmax] = temp;
    return 0;
}

本回答被提问者采纳