C语言,要求用指针方法处理。编写一个程序,输入 10 个整数,将其中最小的数与第一个数对换,把最大的数与最后一个对换。写3 个函数:(1)输入 10 个数;(2)进行处理;(3)输出 10 个数。
时间: 2024-03-07 11:49:49 浏览: 100
C语言程序设计-从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出;本.c
5星 · 资源好评率100%
好的,我会帮助你解决这个问题。以下是代码实现和注释解释:
```c
#include <stdio.h>
// 输入10个数的函数
void input(int *arr, int n) {
printf("请输入 %d 个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", arr + i);
}
}
// 处理数组的函数
void process(int *arr, int n) {
// 找到最小值和最大值的下标
int min_index = 0;
int max_index = 0;
for (int i = 1; i < n; i++) {
if (*(arr + i) < *(arr + min_index)) {
min_index = i;
}
if (*(arr + i) > *(arr + max_index)) {
max_index = i;
}
}
// 交换最小值和第一个数
int temp = *(arr + 0);
*(arr + 0) = *(arr + min_index);
*(arr + min_index) = temp;
// 交换最大值和最后一个数
temp = *(arr + n - 1);
*(arr + n - 1) = *(arr + max_index);
*(arr + max_index) = temp;
}
// 输出数组的函数
void output(int *arr, int n) {
printf("处理后的数组:");
for (int i = 0; i < n; i++) {
printf(" %d", *(arr + i));
}
printf("\n");
}
int main() {
int arr[10];
// 调用输入函数
input(arr, 10);
// 调用处理函数
process(arr, 10);
// 调用输出函数
output(arr, 10);
return 0;
}
```
我们定义了三个函数:输入、处理和输出。输入函数通过指针形参将输入的10个整数存入数组中,处理函数通过指针形参找到最小值和最大值的下标,并交换最小值和第一个数,交换最大值和最后一个数,输出函数通过指针形参输出数组中的10个整数。在主函数中,我们调用这三个函数,实现了对数组的处理。
阅读全文