vlambda博客
学习文章列表

C语言实例第06期:交换数组中最大数和最小数的位置

技术干货第一时间送达!


往期回顾:






实例代码

//
// Created by 冲哥 on 2020/9/13.
//实现功能:交换数组中最大数和最小数的位置
//

#include "stdio.h"

int main(){
    int a[10];
    int max, min;
    int m, n;

    printf("请输入10个数字:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }
    printf("输入的10个数是:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");
    max = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];
            m = i;
        }
    }

    min = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];
            n = i;
        }
    }

    a[m] = min;
    a[n] = max;

    printf("交换最大数和最小数的位置后:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
}  //
// Created by 冲哥 on 2020/9/13.
//实现功能:交换数组中最大数和最小数的位置
//

#include "stdio.h"

int main(){
    int a[10];//定义数组
    int max, min;//定义最大值和最小值
    int m, n;//定义最大值和最小值的位置

    printf("请输入10个数字:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }
    printf("输入的10个数是:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");
    max = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];//找最大值
            m = i;
        }
    }

    min = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];//找最小值
            n = i;
        }
    }

    a[m] = min;
    a[n] = max;

    printf("交换最大数和最小数的位置后:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
}//
// Created by 冲哥 on 2020/9/13.
//实现功能:交换数组中最大数和最小数的位置
//

#include "stdio.h"

int main(){
    int a[10];//定义数组
    int max, min;//定义最大值和最小值
    int m, n;//定义最大值和最小值的位置

    printf("请输入10个数字:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", &a[i]);
    }
    printf("输入的10个数是:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
    printf("\n");
    max = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] > max) {
            max = a[i];//找最大值
            m = i;
        }
    }

    min = a[0];
    for (int i = 0; i < 10; i++) {
        if (a[i] < min) {
            min = a[i];//找最小值
            n = i;
        }
    }

    a[m] = min;
    a[n] = max;

    printf("交换最大数和最小数的位置后:\n");
    for (int i = 0; i < 10; i++) {
        printf("%4d", a[i]);
    }
}

运行结果:

程序分析

首先找到数组中的最大值和最小值,记录它们的位置,然后交换位置,最后将交换后的数组输出。

应该很好理解,如有疑问,随时后台留言或者添加我们的交流群

「C语言交流群:回台回复【C语言】」

C语言中文社区 发起了一个读者讨论 你还有什么好的方法?




9.14





好文!点个好看!