冒泡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;
}
}
}
展开
 我来答
微俊king
2016-07-05 · TA获得超过576个赞
知道小有建树答主
回答量:626
采纳率:50%
帮助的人:567万
展开全部
#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;
}
sweetererer
2016-07-05 · TA获得超过506个赞
知道小有建树答主
回答量:671
采纳率:73%
帮助的人:425万
展开全部
//你的冒泡算法有挺多需要注意的细节,你对照我写的看一下。
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;
            }
        }
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虚拟酱
2016-07-05 · TA获得超过300个赞
知道小有建树答主
回答量:312
采纳率:80%
帮助的人:193万
展开全部
for(j=0;j<n-i;j++) 改为
for(j=0;j<n-1-i;j++)

望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式