想到一个很容易理解的办法,感觉其他同学写的自己理解起来有点繁琐,还是选一个适合自己的吧!

参考代码如下:

#include <stdio.h>

//输入10个元素
void input(int a[])
{
    int i;
    for (i = 0; i < 10; i++)
        scanf("%d", &a[i]);
}

//将数组输出(const表示只读)
void output(const int a[])
{
    int i;
    for (i = 0; i < 10; i++)
        printf("%d ", a[i]);
}

//处理数组
void process(int a[])
{
    int i;
    int min = a[0];
    int max = a[0];
    //1 找到数组中最大和最小的数并分别保存到max和min中
    for (i = 0; i < 10; i++)
    {
        if (min > a[i])
        {
            min = a[i];
        }
        if (max < a[i])
        {
            max = a[i];
        }
    }
    //printf("min = %d max = %d\n", min, max);

    //2 找到max和min在数组中的对应位置,与数组第一个数和最后一个数分别进行对换
    int tmp;
    for (i = 0; i < 10; i++)
    {
        if (min == a[i])
        {
            tmp = a[i];
            a[i] = a[0];
            a[0] = tmp;
        }
        if (max == a[i])
        {
            tmp = a[i];
            a[i] = a[9];
            a[9] = tmp;
        }
    }
}

int main()
{
    int a[10];

    input(a);
    process(a);
    output(a);

    return 0;
}


点赞(1)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

过河卒 5年前 回复TA
厉害!