当前位置: 代码迷 >> C语言 >> 我的冒泡法哪出错了
  详细解决方案

我的冒泡法哪出错了

热度:76   发布时间:2006-04-09 13:33:00.0
我的冒泡法哪出错了

main()
{int a[15],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
for(j=i;j<10;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}

搜索更多相关的解决方案: 冒泡  int  main  

----------------解决方案--------------------------------------------------------

main()
{int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);

for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
getch();
}


如上..



----------------解决方案--------------------------------------------------------
这恐怕不是冒泡法吧.
#include "stdio.h"
main()
{
int a[10],i,j,k,temp;
for(i=0;i<10;++i)
scanf("%d",&a[i]);
for(i=0;i<10;++i){
k=i;
for(j=i+1;j<10;++j)
if(a[k]>a[j])
k=j;
temp=a[i];
a[i]=a[k];
a[k]=temp;
}
for(i=0;i<10;++i)
printf("%d ",a[i]);
}
这是选择法,以下是冒泡法
#include "stdio.h"
main()
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++){
for(j=0;j<9-i;j++)
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}


----------------解决方案--------------------------------------------------------
for(i=0;i<10;i++)
{
for(j=9;j>=i;j--)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
只是算法
----------------解决方案--------------------------------------------------------
  相关解决方案