求最大数和它的下标,并与a[0]交换位置C语言
时间: 2024-02-26 20:58:09 浏览: 26
给定一个数组a,可以通过以下代码找到最大数及其下标,并与a[0]交换位置:
```c
#include <stdio.h>
int main() {
int a[] = {3, 1, 4, 2, 5}; // 假设数组为{3, 1, 4, 2, 5}
int max_num = a[0];
int max_index = 0;
for (int i = 1; i < sizeof(a) / sizeof(int); i++) {
if (a[i] > max_num) {
max_num = a[i];
max_index = i;
}
}
printf("最大数为:%d\n", max_num);
printf("最大数的下标为:%d\n", max_index);
if (max_index != 0) {
int temp = a[max_index];
a[max_index] = a[0];
a[0] = temp;
printf("交换后的数组为:{");
for (int i = 0; i < sizeof(a) / sizeof(int) - 1; i++) {
printf("%d, ", a[i]);
}
printf("%d}\n", a[sizeof(a) / sizeof(int) - 1]);
}
return 0;
}
```
其中,`sizeof(a) / sizeof(int)`用于计算数组a的长度。如果最大数的下标不为0,则进行交换,最后输出交换后的数组。注意,数组下标从0开始,因此最大数的下标可能为0。