C语言求数组中最大值和下标
时间: 2024-02-14 21:16:32 浏览: 29
好的,下面是C语言的代码实现,同样假设您的数组为arr,长度为n:
```c
int max_val = arr[0];
int max_index = 0;
for(int i = 1; i < n; i++){
if(arr[i] > max_val){
max_val = arr[i];
max_index = i;
}
}
printf("最大值为:%d\n", max_val);
printf("最大值下标为:%d\n", max_index);
```
以上代码同样会遍历整个数组,逐个比较找出最大值和对应下标。
相关问题
C语言一维数组求最大值和下标
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int arr[] = {5, 8, 3, 1, 9, 7, 6};
int n = sizeof(arr) / sizeof(arr[0]);
int max = arr[0];
int index = 0;
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
index = i;
}
}
printf("最大值:%d\n下标:%d", max, index);
return 0;
}
```
输出结果如下:
```
最大值:9
下标:4
```
以上代码中,我们首先定义了一个数组 `arr`,并且使用 `sizeof` 函数计算出了数组的长度 `n`。接着,我们定义了变量 `max` 和 `index`,用于储存最大值和下标。然后,我们使用 for 循环遍历数组,如果当前元素大于最大值,则将当前元素赋值给 `max`,并且将当前的下标赋值给 `index`。最后,输出最大值和对应的下标即可。
C语言交换数组中的最大值和最小值
以下是 C 语言代码实现交换数组中的最大值和最小值:
```c
#include <stdio.h>
void swap(int *a, int *b) { // 交换两个元素
int temp = *a;
*a = *b;
*b = temp;
}
void swapMinMax(int arr[], int n) { // 交换最大值和最小值
int minIndex = 0, maxIndex = 0; // 最小值和最大值的下标
int i;
for (i = 1; i < n; ++i) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
if (arr[i] > arr[maxIndex]) {
maxIndex = i;
}
}
swap(&arr[minIndex], &arr[maxIndex]);
}
int main() {
int arr[] = {3, 6, 2, 7, 1, 8, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
swapMinMax(arr, n); // 交换最大值和最小值
printf("交换后数组:");
for (int i = 0; i < n; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
原始数组:3 6 2 7 1 8 4 5
交换后数组:3 6 8 7 1 2 4 5
```
这里使用了函数 `swap` 来交换两个元素的值,再在 `swapMinMax` 函数中找到最小值和最大值的下标,然后调用 `swap` 函数交换它们的值。