鱼C论坛

 找回密码
 立即注册
查看: 1554|回复: 2

[已解决]数组冒泡法,有些细节不懂求指点

[复制链接]
匿名鱼油
匿名鱼油  发表于 2021-11-2 16:43:45 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include "stdio.h"
#define N 6
int main(void)
{ int a[N], i, j, k; printf("输入N个整数:\n");
for ( i=0 ; i<N ; i++)
scanf("%d", &a[i]) ;
for ( i=0; i<=N-2; i++)
for ( j=0; j<=N-2-i; j++)
if (a[j]>a[j+1])
{ k=a[j]; a[j]=a[j+1]; a[j+1]=k;
} for (i=0; i<N; i++)
printf("%d\t", a);
return 0; }

下划线部分怎么理解啊,为什么不是N-1呢?
[/i]
最佳答案
2021-11-2 16:50:11
是为了正好使得判断不越界if (a[j]>a[j+1])
是N-2时,a[j+1]最大访问到a[N-1]  最后一个元素
是N-1时,a[j+1]最大访问到a[N]  越界了
回复

使用道具 举报

发表于 2021-11-2 16:50:11 | 显示全部楼层    本楼为最佳答案   
是为了正好使得判断不越界if (a[j]>a[j+1])
是N-2时,a[j+1]最大访问到a[N-1]  最后一个元素
是N-1时,a[j+1]最大访问到a[N]  越界了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-11-2 16:54:44 | 显示全部楼层
a[j]>a[j+1] //范围0->N-1,i=0时,最后j=N-2,j+1=N-1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 12:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表