永发信息网

C#冒泡不能输出结果

答案:3  悬赏:20  手机版
解决时间 2021-04-11 14:30
  • 提问者网友:轮囘Li巡影
  • 2021-04-11 08:15

public void Fun(int[] a)

{

int i,j,temp;

for(i=0;i<a.length;i++)

{ for(j=0;j<a.length-i-1;j++)

if(a[j]>a[j+1])

{

temp=a[j];

a[j]=a[j+1]

a[j+1]=temp;

}

}

}

上面的代码是我自己写的。但是输出有问题。请高手解答。。。

最佳答案
  • 五星知识达人网友:摆渡翁
  • 2021-04-11 09:32
class Test
{
public static void Fun(int[] a)
{
int i, j, temp;
for (i = a.Length; i >= 0 ; i--)
{
for (j = i; j < a.Length - 1; j++)
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
static void Main()
{
int[] a = { 5, 1, 3, 9, 6, 2, 4, 7, 8, 0 };
Fun( a );
foreach (int i in a)
Console.Write("{0} ", i);
}
}
全部回答
  • 1楼网友:我住北渡口
  • 2021-04-11 10:29

第一重循环改

for(i=1;i<a.length;i++)

第二重循环改

for(j=0;j<a.length-i;j++)

if(a[j]>a[j+1])

{

temp=a[j];

a[j]=a[j+1]

a[j+1]=temp

  • 2楼网友:西岸风
  • 2021-04-11 09:54

第二重循环错了

public void Fun(int[] a)

{

int i,j,temp;

for(i=0;i<a.length;i++)

{ for(j=i+1;j<a.length-1;j++)//应该是这样

if(a[j]>a[j+1])

{

temp=a[j];

a[j]=a[j+1]

a[j+1]=temp;

}

}

}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯