输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。要求使用指针作为参数以传递数据。用C语言简单程序编写出来
时间: 2023-12-04 15:44:25 浏览: 67
下面是实现这个要求的 C 语言代码:
```c
#include <stdio.h>
void input(int *array, int len);
void swap(int *a, int *b);
void process(int *array, int len);
void output(int *array, int len);
int main() {
int array[10];
input(array, 10);
process(array, 10);
output(array, 10);
return 0;
}
void input(int *array, int len) {
printf("请输入10个整数:\n");
for (int i = 0; i < len; i++) {
scanf("%d", &array[i]);
}
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void process(int *array, int len) {
int min_index = 0, max_index = 0;
for (int i = 1; i < len; i++) {
if (array[i] < array[min_index]) {
min_index = i;
}
if (array[i] > array[max_index]) {
max_index = i;
}
}
if (min_index != 0) {
swap(&array[0], &array[min_index]);
}
if (max_index != len - 1) {
swap(&array[len - 1], &array[max_index]);
}
}
void output(int *array, int len) {
printf("处理后的10个整数为:\n");
for (int i = 0; i < len; i++) {
printf("%d ", array[i]);
}
printf("\n");
}
```
这个程序中,我们使用了 4 个函数:
- `input`:输入 10 个整数;
- `swap`:交换两个整数的值;
- `process`:进行处理,找到最小数和最大数,进行交换;
- `output`:输出 10 个整数。
在 `process` 函数中,我们首先找到最小数和最大数的下标,然后根据需要交换数组的元素。注意,最小数如果已经是第一个元素,就不需要再交换了;同理,最大数如果已经是最后一个元素,也不需要再交换了。
在 `main` 函数中,我们按照输入、处理、输出的顺序调用这 4 个函数。
阅读全文