使用C语言输入一维数组的6个元素,将最大值与最后一个交换后输出
时间: 2023-09-01 13:11:00 浏览: 113
好的,以下是用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 函数,并输出交换后的数组。
请注意,这里使用了指针来访问数组元素,因为指针可以使得代码更加简洁和高效。
将n个数输入到一个维数组,将值最大的数组元与值最小的数组元素的位置对调后输出.用C语言写出代码。
以下是C语言代码实现:
```c
#include <stdio.h>
#define MAX_LEN 100
int main() {
int n, a[MAX_LEN], max_index, min_index, temp;
// 读取n和数组a
printf("请输入n:");
scanf("%d", &n);
printf("请输入%d个数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 找到最大值和最小值的位置
max_index = min_index = 0;
for(int i = 0; i < n; i++) {
if(a[i] > a[max_index]) {
max_index = i;
}
if(a[i] < a[min_index]) {
min_index = i;
}
}
// 交换最大值和最小值
temp = a[max_index];
a[max_index] = a[min_index];
a[min_index] = temp;
// 输出结果
printf("交换后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
感谢使用ChitGPT,如果您有其他问题,欢迎随时提出。