用c语言输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个对换。写3个函数:(1)输入10个数;(2)进行处理;(3)输出10个数。
时间: 2023-12-04 07:23:36 浏览: 52
好的,我可以帮你解决这个问题。以下是代码实现:
```c
#include <stdio.h>
void input(int arr[], int n) {
printf("请输入10个整数:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
}
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void process(int arr[], int n) {
int min_idx = 0, max_idx = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < arr[min_idx]) {
min_idx = i;
}
if (arr[i] > arr[max_idx]) {
max_idx = i;
}
}
if (min_idx != 0) {
swap(&arr[0], &arr[min_idx]);
}
if (max_idx != n - 1) {
swap(&arr[max_idx], &arr[n - 1]);
}
}
void output(int arr[], int n) {
printf("处理后的数组为:\n");
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` 函数将处理后的结果输出。其中, `swap` 函数用于交换两个数的值。
在 `process` 函数中,我们首先找到数组中最小值和最大值的下标,然后将最小值与第一个数对换,将最大值与最后一个数对换。
希望这个程序能够解决你的问题。如果还有什么不明白的地方,欢迎继续向我提问。
阅读全文