c语言用指针和函数 抽入10个整数,将其中最小的数与第一个数对换,把最大的数 与最后一个数对换。写3个西数: 输入10个数:进行处理; 输出10个数。 代码
时间: 2023-12-04 20:20:32 浏览: 91
好的,下面是代码:
```c
#include <stdio.h>
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void process(int arr[], int len)
{
int min = arr[0], max = arr[0], min_index = 0, max_index = 0;
for (int i = 1; i < len; i++) {
if (arr[i] < min) {
min = arr[i];
min_index = i;
}
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
swap(&arr[0], &arr[min_index]);
swap(&arr[len-1], &arr[max_index]);
}
void print_arr(int arr[], int len)
{
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
int main()
{
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
process(arr, 10);
printf("处理后的结果为:\n");
print_arr(arr, 10);
return 0;
}
```
思路解析:
1. 定义 `swap` 函数用于交换两个整数的值,用指针传递参数。
2. 定义 `process` 函数,遍历数组找到最小值和最大值,记录它们的下标,并调用 `swap` 函数交换值。
3. 定义 `print_arr` 函数用于打印数组。
4. 在 `main` 函数中输入数据,调用 `process` 函数进行处理,再调用 `print_arr` 函数打印结果。
阅读全文