用C语言做,输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1.输入10个整数;2.进行处理;3.输出10个数。3个指针,1个指向最小数,1个指向最大数,1个循环指向0~9号元素。 要求编写3个子函数
时间: 2024-03-13 07:43:06 浏览: 59
好的,我会尽力回答您的问题。以下是我对您的问题的回答:
您可以使用以下代码来实现您的要求:
```c
#include <stdio.h>
void input(int *arr) {
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
}
void process(int *min, int *max, int *arr) {
for (int i = 1; i < 10; i++) {
if (arr[i] < *min) {
*min = arr[i];
}
if (arr[i] > *max) {
*max = arr[i];
}
}
int temp = arr[0];
arr[0] = *min;
*min = temp;
temp = arr[9];
arr[9] = *max;
*max = temp;
}
void output(int *arr) {
printf("处理后10个整数为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[10];
int min = 0, max = 0;
input(arr);
min = max = arr[0];
process(&min, &max, arr);
output(arr);
return 0;
}
```
第一个函数 `input` 用于输入10个整数,参数为一个数组指针,函数内部使用 `scanf` 函数从键盘读取10个整数,并将它们存储到数组中。
第二个函数 `process` 用于进行处理,参数为三个指针,分别指向最小数、最大数和数组中的第一个元素。函数内部使用循环遍历数组,找到其中的最小数和最大数,并将它们与数组中的第一个数和最后一个数进行对换。
第三个函数 `output` 用于输出10个整数,参数为一个数组指针,函数内部使用循环遍历数组,并逐个输出数组元素。
在 `main` 函数中,我们首先声明一个数组 `arr` 和两个整型变量 `min` 和 `max`,然后调用 `input` 函数读取10个整数,并将数组作为参数传递给函数。接着,我们初始化 `min` 和 `max` 为数组的第一个元素,并将它们的地址作为参数传递给 `process` 函数进行处理。最后,我们调用 `output` 函数输出处理后的10个整数。
希望我的回答能够对您有所帮助!
阅读全文