用c语言输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。 写3个函数:输入10个数;进行处理;输出10个数。
时间: 2023-12-04 09:09:48 浏览: 67
C语言程序设计-从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,并在main函数中输出;本.c
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。以下是针对你的问题的代码和解释:
```c
#include <stdio.h>
void input(int arr[], int n); // 输入函数
void process(int arr[], int n); // 处理函数
void output(int arr[], int n); // 输出函数
int main() {
int arr[10];
int n = 10;
input(arr, n);
process(arr, n);
output(arr, n);
return 0;
}
void input(int arr[], int n) {
printf("请输入10个整数:\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("处理后的结果为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
这个程序使用了三个函数,分别是 `input`、`process` 和 `output`。 `input` 函数用于输入 10 个整数, `process` 函数用于进行处理,即找到最小值和最大值,并交换位置, `output` 函数用于输出处理后的结果。
在 `process` 函数中,我们使用了两个变量 `min_index` 和 `max_index`,分别表示最小值和最大值的下标。我们遍历整个数组,如果找到比当前最小值更小的数,就更新 `min_index`,如果找到比当前最大值更大的数,就更新 `max_index`。最后,我们使用了一个临时变量 `temp`,交换最小值和第一个数的位置,交换最大值和最后一个数的位置。
在 `output` 函数中,我们使用了一个循环来输出处理后的结果。
希望这个程序能够帮到你!
阅读全文