3.输入10个整数,将其中最小的数与第1个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出 10 个数。
时间: 2024-05-18 22:07:43 浏览: 43
输入10个整数,将其中最小的数与第一个数对换
5星 · 资源好评率100%
好的,这道题目可以分为三个部分来解决,分别是输入10个数、进行处理和输出10个数。下面我将分别介绍这三个部分的实现方法。
1. 输入10个数
我们可以使用一个循环来输入10个数,具体实现如下:
```c
void input(int arr[]) {
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
}
```
这个函数接受一个整型数组作为参数,然后使用循环来输入10个整数。
2. 进行处理
在这一步中,我们需要找到最小值和最大值,并将它们与数组的第一个元素和最后一个元素进行交换。具体实现如下:
```c
void process(int arr[]) {
int min = arr[0], max = arr[0], min_index = 0, max_index = 0;
for (int i = 1; i < 10; i++) {
if (arr[i] < min) {
min = arr[i];
min_index = i;
}
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
int temp = arr[0];
arr[0] = min;
arr[min_index] = temp;
temp = arr[9];
arr[9] = max;
arr[max_index] = temp;
}
```
这个函数接受一个整型数组作为参数,然后使用循环找到最小值和最大值,并记录它们的下标。最后将最小值与数组的第一个元素进行交换,将最大值与数组的最后一个元素进行交换。
3. 输出10个数
最后一步就是输出10个数了,具体实现如下:
```c
void output(int arr[]) {
printf("处理后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
```
这个函数接受一个整型数组作为参数,然后使用循环来输出数组中的每一个元素。
完整代码如下:
```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 arr[]) {
int min = arr[0], max = arr[0], min_index = 0, max_index = 0;
for (int i = 1; i < 10; i++) {
if (arr[i] < min) {
min = arr[i];
min_index = i;
}
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
int temp = arr[0];
arr[0] = min;
arr[min_index] = temp;
temp = arr[9];
arr[9] = max;
arr[max_index] = temp;
}
void output(int arr[]) {
printf("处理后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main() {
int arr[10];
input(arr);
process(arr);
output(arr);
return 0;
}
```
阅读全文