运用C语言指针方法不调用函数输入 10 个整数,将其中最小的数与第一个数对换,把最大的数与最后一个对换。(运 行时输入的 10 个数分别按以下 3 种情况取值:{5, 1, 2, 3, 4, 0, 9, 7, 8, 6},{9, 1, 2, 3, 4, 0, 6, 7, 8, 5}和{5, 1, 2, 3, 4, 9, 6, 7, 8, 0})
时间: 2023-09-28 08:12:12 浏览: 79
好的,这个问题可以通过以下的代码实现:
```c
#include <stdio.h>
int main() {
int arr[10];
int min = 0, max = 0;
// 输入 10 个整数
printf("请输入 10 个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
// 查找最小值和最大值的下标
for (int i = 1; i < 10; i++) {
if (arr[i] < arr[min]) {
min = i;
}
if (arr[i] > arr[max]) {
max = i;
}
}
// 将最小值与第一个数对换
int tmp = arr[0];
arr[0] = arr[min];
arr[min] = tmp;
// 将最大值与最后一个数对换
tmp = arr[9];
arr[9] = arr[max];
arr[max] = tmp;
// 输出交换后的数组
printf("交换后的数组为:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个版本的代码中,我们没有定义 `swap` 函数,而是直接在主函数中交换了最小值和第一个数,以及最大值和最后一个数。注意,在交换过程中需要使用一个临时变量 `tmp` 来保存中间结果。另外,这里提供了三组测试数据,可以用来验证代码的正确性。
阅读全文