关于#c语言#的问题,如何解决?

输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求用3个函数实现,分别为输入10个数、进行处理、输出10个数。要求使用指针的方法进行处理。

输入
用空格隔开的10个整数。

输出
输出进行题目描述操作之后的10个整数,每个整数之后输出一个空格。
请注意行尾输出换行。

1.


#include <stdio.h>

void input(int *p) {
    printf("请输入10个整数:\n");
    for (int i = 0; i < 10; i++) {
        scanf("%d", p + i);
    }
}

void process(int *p) {
    int *min = p, *max = p;
    for (int i = 1; i < 10; i++) {
        if (*(p + i) < *min) {
            min = p + i;
        }
        if (*(p + i) > *max) {
            max = p + i;
        }
    }
    int tmp = *p;
    *p = *min;
    *min = tmp;

    if (max == p) {
        max = min;
    }
    tmp = *(p + 9);
    *(p + 9) = *max;
    *max = tmp;
}

void output(int *p) {
    printf("处理后的结果为:\n");
    for (int i = 0; i < 10; i++) {
        printf("%d ", *(p + i));
    }
    printf("\n");
}

int main() {
    int arr[10];
    input(arr);
    process(arr);
    output(arr);
    return 0;
}

望采纳

首先,input 函数用于输入 10 个整数,使用指针变量 p 指向数组首地址,使用循环输入每个整数。

然后,process 函数用于进行处理,找到最小值和最大值所在的位置,然后交换第一个数和最小数的位置,交换最后一个数和最大数的位置。

最后,output 函数用于输出 10 个整数,同样使用指针变量 p 指向数组首地址,使用循环输出每个整数,并在行末输出换行符。

最后,在 main 函数中依次调用这 3 个函数即可。