首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

冒泡不知错哪了

2013-06-25 
冒泡不知哪里错了#include stdio.hint data[5]{1,3,2,4,5}int main(){int j, tempint ifor(i0i5

冒泡不知哪里错了
#include <stdio.h>
int data[5]={1,3,2,4,5};
int main()
{
int j, temp;
int i;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
if(data[j]<data[j+1])
{
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;

}
}
printf("%d",data[i]);

}

}

[解决办法]

#include <stdio.h>

int data[5]={1,3,2,4,5};

int main(void)
{
    int j, temp;
    int i;
    int flag = 0;
    for(i=0;i<5;++i)
    {
        flag = 0;
        for(j=0;j<4-i;++j)
        {

            if(data[j]<data[j+1])
            {
                temp=data[j];
                data[j]=data[j+1];
                data[j+1]=temp;
                flag = 1;

            }
        }
        if (0 == flag) //表示已排好序
        {
            break;
        }
    }
    for(i=0; i<5;i++)
    {
        printf("%4d",data[i]);
    }
    printf("\n");
    return 0;
}

仅供参考

热点排行