【发布时间】:2021-05-17 15:19:18
【问题描述】:
我创建了一个程序,它从用户那里寻找关于 5 位数字(使用 char 数据类型)的输入,并根据 if 语句中设置的参数,根据升序或降序对其进行冒泡排序。
案例 1:如果 (a[j]
- 输入:12345
- 所需输出:54321
- 输出:12345 - 工作
案例 2:如果 (a[j] > a[j+1])
- 输入:54321
- 所需输出:12345
- 不起作用。
下面是我的代码:
int main()
{
char a[6];
int i, temp;
int j = 0;
printf("Enter a 5 digit number\n");
scanf("%s", a);
printf("You entered : %s\n", a);
for ( i = 0 ; i < 5 ; i++ )
{
for ( j = 0 ; j < 6 - 1 - i ; ++j )
{
if ( a[j] > a[j+1] )
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("Bubble Sorted number : %s\n", a);
return 0;
}
【问题讨论】:
-
这个程序足够小,您可以逐行逐行执行。当 j 为 4 时会发生一些有趣的事情。
标签: arrays c sorting bubble-sort