读入1 个正整数 n(n<=10),再读入n个整数并放入一个数组中,将其中的最大值(设唯一)与最后一个元素交换, 输出该数组。 例:括号内是说明 输入: 5 3 9 5 1 8 (n=5) 输出: 3 8 5 1 9
时间: 2024-10-08 15:23:13 浏览: 10
在C语言中,可以使用一个简单的算法来完成这个任务。首先,我们创建一个数组并读取用户输入的整数,然后找到数组中的最大值,并将其与最后一个元素进行交换。以下是完整的C代码实现:
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int find_max(int arr[], int size) {
int max = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int main() {
int n;
printf("请输入正整数n:");
scanf("%d", &n);
// 创建一个大小为n的数组并读取整数
int arr[n];
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 找到最大值并存储在临时变量max中
int max_value = find_max(arr, n);
// 将最大值与最后一个元素交换
swap(&arr[n - 1], &max_value);
// 输出数组
printf("输出数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
当运行此程序并按照例子输入5、3、9、5、1和8时,它将输出:3 8 5 1 9。