用c语言本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。 注意:题目保证最大和最小值都是唯一的。
时间: 2023-11-23 09:05:26 浏览: 19
```c
#include <stdio.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int n;
scanf("%d", &n);
int nums[n];
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
int max_idx = 0, min_idx = 0;
for (int i = 1; i < n; i++) {
if (nums[i] > nums[max_idx]) {
max_idx = i;
}
if (nums[i] < nums[min_idx]) {
min_idx = i;
}
}
swap(&nums[0], &nums[min_idx]);
swap(&nums[n-1], &nums[max_idx]);
for (int i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
相关问题
本题要求用C语言编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
以下是用C语言编写的程序,实现了题目要求的功能:
```c
#include <stdio.h>
void swap(int *a, int *b) { // 定义交换函数
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int n; // 数组长度
printf("请输入数组长度:");
scanf("%d", &n);
int arr[n]; // 定义数组
printf("请输入一系列整数:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// 找最小值并与第一个数交换
int min_index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] < arr[min_index]) {
min_index = i;
}
}
swap(&arr[0], &arr[min_index]);
// 找最大值并与最后一个数交换
int max_index = n - 1;
for (int i = n - 2; i >= 0; i--) {
if (arr[i] > arr[max_index]) {
max_index = i;
}
}
swap(&arr[n - 1], &arr[max_index]);
// 输出交换后的序列
printf("交换后的序列为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
程序先读入数组长度和一系列整数,然后找出最小值并与第一个数交换,再找出最大值并与最后一个数交换,最后输出交换后的序列。其中交换函数 `swap` 可以复用,方便代码维护。
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。 注意:题目保证最大和最小值都是唯一的。用C语言一维数组编写
以下是用 C 语言一维数组编写的程序,实现题目要求的功能:
```c
#include <stdio.h>
int main() {
int n, i, min_idx, max_idx, temp;
scanf("%d", &n);
int arr[n];
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
min_idx = max_idx = 0;
for (i = 1; i < n; i++) {
if (arr[i] < arr[min_idx]) {
min_idx = i;
}
if (arr[i] > arr[max_idx]) {
max_idx = i;
}
}
temp = arr[0];
arr[0] = arr[min_idx];
arr[min_idx] = temp;
temp = arr[n-1];
arr[n-1] = arr[max_idx];
arr[max_idx] = temp;
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
程序中,首先读入整数序列的长度 `n`,然后定义长度为 `n` 的整型数组 `arr`。接着通过循环读入整数序列,并且找到序列中的最小值和最大值的索引。然后将最小值与第一个数交换,将最大值与最后一个数交换。最后通过循环输出交换后的序列。
阅读全文