使用C语言输入一维数组的6个元素,将最大值与最后一个交换后输出
时间: 2023-09-01 16:11:00 浏览: 196
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int arr[6];
int max = 0;
int max_index = 0;
// 输入数组元素
printf("请输入6个整数:\n");
for (int i = 0; i < 6; i++) {
scanf("%d", &arr[i]);
}
// 找出最大值及其下标
for (int i = 0; i < 6; i++) {
if (arr[i] > max) {
max = arr[i];
max_index = i;
}
}
// 交换最大值和最后一个元素
int temp = arr[max_index];
arr[max_index] = arr[5];
arr[5] = temp;
// 输出数组元素
printf("交换后的数组为:\n");
for (int i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
希望能对您有所帮助!
相关问题
用c语言使用指针输入一维数组10个元素, 最小值与第一个交换,最大值与最后 个交换。
以下是使用指针在 C 语言中实现输入一维数组,交换最小值和第一个元素,以及交换最大值和最后一个元素的示例代码:
```c
#include <stdio.h>
// 函数声明
void swap(int *a, int *b);
void min_max_swap(int *arr, int n);
int main() {
int arr[10];
int i;
// 使用指针输入一维数组
printf("请输入数组元素:\n");
for (i = 0; i < 10; i++) {
scanf("%d", arr + i);
}
// 交换最小值和第一个元素,最大值和最后一个元素
min_max_swap(arr, 10);
// 输出交换后的数组
printf("交换后的数组为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
return 0;
}
// 交换两个变量的值
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 交换最小值和第一个元素,最大值和最后一个元素
void min_max_swap(int *arr, int n) {
int i, min_index = 0, max_index = 0;
for (i = 1; i < n; i++) {
if (*(arr + i) > *(arr + max_index)) {
max_index = i;
}
if (*(arr + i) < *(arr + min_index)) {
min_index = i;
}
}
swap(arr + min_index, arr);
swap(arr + max_index, arr + n - 1);
}
```
在这个代码中,我们使用 scanf 函数从用户输入中读取元素,并使用指针将它们存储到数组中。然后,我们定义了一个 min_max_swap 函数,它使用循环查找数组中的最小值和最大值,并使用 swap 函数交换这些元素。最后,我们在主函数中调用 min_max_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`。接着通过循环读入整数序列,并且找到序列中的最小值和最大值的索引。然后将最小值与第一个数交换,将最大值与最后一个数交换。最后通过循环输出交换后的序列。
阅读全文