C语言输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。(有相同的数)
时间: 2024-01-04 22:04:51 浏览: 91
你可以使用C语言的数组和循环来实现这个功能。以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int numbers[10];
int i, j, temp;
// 输入10个整数
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &numbers[i]);
}
// 冒泡排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (numbers[j] > numbers[j + 1]) {
temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
// 输出排序后的数组和每个元素在原序列中的位置
printf("排序后的数组:\n");
for (i = 0; i < 10; i++) {
printf("%d ", numbers[i]);
}
printf("\n");
printf("每个元素在原序列中的位置:\n");
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if (numbers[i] == numbers[j]) {
printf("%d ", j + 1);
break;
}
}
}
printf("\n");
return 0;
}
```
这段代码首先使用循环从用户那里输入10个整数,并将它们存储在一个名为`numbers`的数组中。然后,使用冒泡排序算法对数组进行排序。最后,使用循环输出排序后的数组,并通过另一个嵌套循环找到每个元素在原序列中的位置并输出。
请注意,这只是一个示例代码,输入的整数没有进行错误处理。在实际应用中,你可能需要添加适当的错误处理和边界检查,以确保程序的稳定性和可靠性。
阅读全文