C语言中,输入十个整数,将它们从小到大排序后,输出每个元素在原来序列中的位置
时间: 2024-12-12 19:23:10 浏览: 3
在C语言中,你可以使用冒泡排序算法来实现这个功能。以下是步骤:
1. 首先,创建一个数组来存储这十个整数并获取用户输入。
2. 使用冒泡排序算法遍历数组,比较相邻的元素,如果顺序不对就交换它们的位置,并记住这是该元素原本的位置。
3. 每次遍历完后,最大的元素就会沉底,因此外层循环会减少一轮,直到整个数组有序。
4. 排序完成后,再遍历一次数组,按照原来的索引输出每个元素及其在新排序后的对应位置。
下面是一个简单的示例代码:
```c
#include <stdio.h>
void bubble_sort(int arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - 1 - i; ++j) {
if (arr[j] > arr[j + 1]) {
// 交换元素的同时记录下原位置
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
printf("Element %d was at position %d before sorting, now it's at %d.\n", arr[j], j, j + 1);
}
}
}
}
int main() {
int nums[10];
printf("Enter 10 integers:\n");
for (int i = 0; i < 10; ++i) {
scanf("%d", &nums[i]);
}
bubble_sort(nums, 10);
return 0;
}
```
运行这段代码后,你会看到每个元素及其原始位置和排序后的相对位置。
阅读全文