冒泡法求助
#include <stdio.h>int main()
{
int i,j,t;
int a = {65,75,98,84,56,32};
for(i = 0;i<6;i++)
{
printf("原始数据:%d\n",a);
}
for(i = 0;i<5;i++)
{
for(j = 0;j<5-i;j++)
{
if(a<a);
{
t = a;
a = a;
a = t;
}
}
}
for(i = 0;i<6;i++)
{
printf("%d\n",a);
}
}
代码如上
请大佬帮我看一下是代码有问题,还是冒泡法无法排序两位数以上的数字(这个代码可以给一位数正常排序),每次排序两位数以上的数字时都无法正常排序,求大佬帮帮萌新 本帖最后由 傻眼貓咪 于 2021-10-20 21:07 编辑
#include <stdio.h>
#include <stdbool.h>
int main()
{
int arr = {13, 7, 89, 5, -6, -15, 0, 23, -4, 17}; // 无序列表
bool flag; // 立标
while(1){
flag = false; // 初始化标识
for(int i = 0; i < 9; i++)
{
if(arr > arr) //泡沫排序法
{
arr ^= arr;
arr ^= arr;
arr ^= arr;
flag = true; // 当有执行排序举动,则 true
}
}
if(!flag) break; // false 表示访问一轮没有执行排序,则表示排序完成
}
for(int i = 0; i < 10; i++){
printf("%d ", arr);
}
return 0;
}-15 -6 -4 0 5 7 13 17 23 89 本帖最后由 英俊男孩建坤 于 2021-10-20 22:36 编辑
#include <stdio.h>
int main()
{
int a = {65,75,98,84,56,32};
for(int i = 0; i < 6; i++)
{
printf("原始数据:%d\n",a);
}
for(int i = 1; i < 6; i++)
{
for(int j = 0; j < 6 - i ; j++)
{
if(a < a)
{
int t = a;
a = a;
a = t;
}
}
}
for(int i = 0; i < 6; i++)
{
printf("%d\n",a);
}
}
原始数据:65
原始数据:75
原始数据:98
原始数据:84
原始数据:56
原始数据:32
32
56
65
75
84
98
你这代码问题一堆。。。还有 写代码的时候可以加入点空格美观一点 都挤在一起看起来很难受 谢谢
页:
[1]