c语言排序记录下标正确版
时间: 2023-07-15 19:10:43 浏览: 49
以下是 C 语言中使用冒泡排序法对数组进行排序并记录下标的正确版代码:
```c
#include <stdio.h>
int main() {
int arr[5] = {5, 3, 1, 4, 2};
int n = 5;
int i, j, temp, index[n];
// Initialize index array
for (i = 0; i < n; i++) {
index[i] = i;
}
// Bubble sort
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Swap values in arr
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
// Swap values in index
temp = index[j];
index[j] = index[j + 1];
index[j + 1] = temp;
}
}
}
// Print sorted array and corresponding index
printf("Sorted Array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
printf("Index: ");
for (i = 0; i < n; i++) {
printf("%d ", index[i]);
}
printf("\n");
return 0;
}
```
该代码中使用了一个 `index` 数组来记录每个元素在原数组中的下标。在排序时,同时对 `arr` 和 `index` 数组进行操作,保证排序后 `arr` 中的元素和 `index` 中的元素一一对应。最后输出排序后的数组和对应的下标即可。