编写一段C语言程序,将数组15.5.3.1.9.8.7.6.0.10.21元素从小到大排序并求出下标,分别存在MAX和MAXI中
时间: 2024-03-06 21:47:44 浏览: 91
好的,下面是C语言代码实现:
```c
#include <stdio.h>
int main()
{
int arr[] = {15, 5, 3, 1, 9, 8, 7, 6, 0, 10, 21};
int len = sizeof(arr) / sizeof(int);
int i, j, temp, max = 0, maxi = 0;
for (i = 0; i < len - 1; ++i) {
for (j = i + 1; j < len; ++j) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
printf("排序后的数组为:");
for (i = 0; i < len; ++i) {
printf("%d ", arr[i]);
if (arr[i] > max) {
max = arr[i];
maxi = i;
}
}
printf("\n最大值为:%d,下标为:%d\n", max, maxi);
return 0;
}
```
程序运行结果:
```
排序后的数组为:0 1 3 5 6 7 8 9 10 15 21
最大值为:21,下标为:10
```
解释一下程序的实现过程:
1. 声明一个整型数组 `arr`,并初始化数组元素;
2. 通过 `sizeof` 运算符计算数组长度,用 `len` 变量存储;
3. 声明变量 `i` 和 `j`,用于循环遍历数组元素;
4. 声明变量 `temp`,用于交换数组元素;
5. 内层循环比较并交换相邻两个元素,使得数组元素从小到大排序;
6. 外层循环遍历完所有元素后,输出排序后的数组;
7. 在输出排序后的数组元素时,顺便记录最大值和下标;
8. 输出最大值和下标。
阅读全文