题目:输入一个数组,将其中最大的元素与第一个元素交换,将最小的元素与最后一个元素交换,然后输出数组。

程序分析:通过遍历数组找到最大值和最小值的索引,并进行交换操作。

实例

#include <stdio.h>
#include <stdlib.h>

void swap(int *s, int i, int j) {
    int temp = s[i];
    s[i] = s[j];
    s[j] = temp;
}

void arraySwap(int *s, int n) {
    int maxIndex = 0;
    int minIndex = 0;
    int i;

    for (i = 0; i < n; i++) {
        if (s[i] > s[maxIndex]) {
            maxIndex = i;
        }

        if (s[i] < s[minIndex]) {
            minIndex = i;
        }
    }

    swap(s, maxIndex, 0);
    swap(s, minIndex, n - 1);
}

void printArray(int *s, int n) {
    int i;
    for (i = 0; i < n; i++) {
        printf("%d ", s[i]);
    }
    printf("\n");
}

int main() {
    int s[20];
    int i, n;

    printf("设置数组长度(<20): ");
    scanf("%d", &n);

    printf("输入 %d 个元素:\n", n);
    for (i = 0; i < n; i++) {
        scanf("%d", &s[i]);
    }

    arraySwap(s, n);

    printf("交换后的数组:\n");
    printArray(s, n);

    return 0;
}

以上代码执行输出结果为:

设置数组长度(<20): 5
输入 5 个元素:
12 123 4 65 21
交换后的数组:
123 12 21 65 4

在上述代码中,我们首先定义了一个swap函数,用于交换数组中的两个元素。然后,我们通过遍历数组找到最大值和最小值的索引,分别与第一个元素和最后一个元素进行交换操作。最后,我们使用printArray函数打印输出交换后的数组。

请注意,在swap函数中,我们通过指针参数*s来修改数组元素的值,从而实现了交换操作。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题