C语言中,输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。用指针写三个函数:①输入10个数;②进行处理;③输出10个数。
时间: 2023-12-04 07:19:26 浏览: 108
统计单词个数&&将字符串中连续出现的数字放进一维数组
4星 · 用户满意度95%
好的,这是一个比较基础的 C 语言编程问题。下面是实现这个需求的代码:
```c
#include <stdio.h>
void input(int *arr, int n) {
printf("请输入10个整数:");
for (int i = 0; i < n; i++) {
scanf("%d", arr + i);
}
}
void process(int *arr, int n) {
int min = *arr, max = *arr;
int *min_ptr = arr, *max_ptr = arr;
for (int i = 0; i < n; i++) {
if (*(arr + i) < min) {
min = *(arr + i);
min_ptr = arr + i;
}
if (*(arr + i) > max) {
max = *(arr + i);
max_ptr = arr + i;
}
}
// 交换最小值和第一个数
int temp = *arr;
*arr = *min_ptr;
*min_ptr = temp;
// 交换最大值和最后一个数
temp = *(arr + n - 1);
*(arr + n - 1) = *max_ptr;
*max_ptr = temp;
}
void output(int *arr, int n) {
printf("处理后的10个整数为:");
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;
}
```
这里用了三个函数:`input` 用于输入 10 个整数,`process` 用于处理数组,将最小值和第一个数交换,将最大值和最后一个数交换,`output` 用于输出处理后的 10 个整数。在 `process` 函数中,用指针分别指向最小值和最大值所在的位置,找到最小值和最大值后再进行交换。最后在 `main` 函数中调用这三个函数即可完成程序。
阅读全文