c语言冒泡排序,可以这样写吗,帮纠错。

namewander 2019-09-13 02:21:08
//冒泡排序法 #include <stdio.h> int main() { int i,j,t,a[n]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=0;i<n-1;i++)//10个数,进行9次循环,进行9趟比较 { for(j=i+1;j<n-1;j++) { a[i]=a[i]>a[j]?a[i]:a[j]; } } for(j=0;j<10;j++) { printf("%d\n",a[j]); } return 0; } 这个主要比起常规的,就是把 for(j=0;j<n-i-1;j++) 中-i放到前面去了,如图
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
namewander 2019-09-13
  • 打赏
  • 举报
回复
引用 6 楼 wowpH的回复:
for(int j = i + 1; j < n;  ++j) {
if (a[i] < a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
谢谢,这样改是没问题了。
wowpH 2019-09-13
  • 打赏
  • 举报
回复
for(int j = i + 1; j < n;  ++j) {
if (a[i] < a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
namewander 2019-09-13
  • 打赏
  • 举报
回复
引用 1 楼 wowpH的回复:
运行一下就知道了。
我知道有什么出错了,如果进行a[i]=()的赋值,原来的值没有了。。。
namewander 2019-09-13
  • 打赏
  • 举报
回复
我知道可能不是冒泡。
namewander 2019-09-13
  • 打赏
  • 举报
回复
我也觉得是,冒泡的是把最大或最小的先放下面,我是把它放上面。
wowpH 2019-09-13
  • 打赏
  • 举报
回复
另外:你这个不是冒泡。
wowpH 2019-09-13
  • 打赏
  • 举报
回复
运行一下就知道了。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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