C语言代码,输入10个整数,将它们从小到大排序后输出,并给出现每个元素在原来序列中的位置。
时间: 2024-01-04 15:04:06 浏览: 30
好的,下面是C语言的代码实现:
```c
#include <stdio.h>
int main()
{
int num[10];
int i, j, min, temp, pos[10];
for (i = 0; i < 10; i++) {
printf("请输入第%d个整数:", i+1);
scanf("%d", &num[i]);
pos[i] = i + 1;
}
for (i = 0; i < 9; i++) {
min = i;
for (j = i+1; j < 10; j++) {
if (num[j] < num[min]) {
min = j;
}
}
if (min != i) {
temp = num[i];
num[i] = num[min];
num[min] = temp;
temp = pos[i];
pos[i] = pos[min];
pos[min] = temp;
}
}
printf("排序后的结果为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", num[i]);
}
printf("\n");
printf("原来序列中的位置分别为:\n");
for (i = 0; i < 10; i++) {
printf("%d ", pos[i]);
}
printf("\n");
return 0;
}
```
代码思路:
1. 定义一个长度为10的整型数组num,用来存放用户输入的10个整数。
2. 定义一个长度为10的整型数组pos,用来存放每个元素在原来序列中的位置。
3. 使用for循环,让用户依次输入10个整数,并存入数组num中,同时将每个元素的位置存入数组pos中。
4. 使用两层for循环和选择排序的思想,将数组num中的元素从小到大排序,同时保持数组pos中元素的位置与数组num中元素的位置一一对应。
5. 输出排序后的结果,并通过for循环输出每个元素在原来序列中的位置。