冒泡c程序问题,运行这个代码,第二个数出现的是一串数字,求大神解释一下,并修改一下
#include<stdio.h>voidmain(){inti;inta[]={8,7,6,5,4,3,2};Bubblesort(a,7);for(i=0;i<7;i...
#include <stdio.h>
void main()
{ int i;
int a[]={8,7,6,5,4,3,2};
Bubblesort(a,7);
for (i=0;i<7;i++)
printf("%d\n",a[i]);
}
void Bubblesort(int *a,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++) //冒泡法要排序n-1趟
for(j=0;j<n-i;j++) //每一趟要做n-i次比较
{
if(a[j]>a[j+1]) //进行两两比较,进行交换,沉下重的数
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
} 展开
void main()
{ int i;
int a[]={8,7,6,5,4,3,2};
Bubblesort(a,7);
for (i=0;i<7;i++)
printf("%d\n",a[i]);
}
void Bubblesort(int *a,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++) //冒泡法要排序n-1趟
for(j=0;j<n-i;j++) //每一趟要做n-i次比较
{
if(a[j]>a[j+1]) //进行两两比较,进行交换,沉下重的数
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
} 展开
3个回答
展开全部
#include <stdio.h>
void Bubblesort(int *a,int n)
{
int i,j,temp;
for(i=0;i<n-1;i++) //冒泡法要排序n-1趟
for(j=0;j< n-i-1;j++) //这句错了有异常 你懂的
{
if(a[j]>a[j+1]) //进行两两比较,进行交换,沉下重的数
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
int main()
{ int i;
int a[]={8,7,6,5,4,3,2};
Bubblesort(a,7);
for (i=0;i<7;i++)
printf("%d\n",a[i]);
return 0;
}
展开全部
//你的冒泡算法有挺多需要注意的细节,你对照我写的看一下。
void bu_1(int *bu,int len)
{
int i,j,u;
for(i=1;i<len;++i)
{
for(j=i;j>0;--j)
{
if(bu[j]<bu[j-1])
{
u=bu[j];
bu[j]=bu[j-1];
bu[j-1]=u;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(j=0;j<n-i;j++) 改为
for(j=0;j<n-1-i;j++)
望采纳
for(j=0;j<n-1-i;j++)
望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询