大神帮我看看这个冒泡哪里错了

# include <stdio.h> void sort(int * a, int len) { int i, j, t; for (i=0; i<len-1; ++i) { for (j=0; j<len-1-i; ++j) { if (a[j] > a[j+i]) { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } } } int main(void) { int a[6] = {7, 3, 5, -9, 10, 22}; int i = 0; sort(a, 6); for (i=0; i<6; ++i) { printf("%d ", a[i]); } printf("\n"); return 0; }
...全文
61 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2019-08-10
  • 打赏
  • 举报
回复

if (a[j] > a[j+i])//这句话错了,改成 a[j]>a[j+1] 就可以了,楼上的冒泡比较次数比你的多
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
  • 打赏
  • 举报
回复
引用 1 楼 kuangbao9 的回复:
void sort(int * a, int len)
{
int i, j, t;

for (i = 0; i < len; ++i)
{
for (j = 0; j < len; ++j)
{
if (a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}

}
谢谢大哥
kuangbao9 2019-08-10
  • 打赏
  • 举报
回复
void sort(int * a, int len)
{
int i, j, t;

for (i = 0; i < len; ++i)
{
for (j = 0; j < len; ++j)
{
if (a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}

}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧