主函数里的冒泡算法为什么编写成函数就出了差错?
在主函数里面冒泡算法没有问题,但被单独拿出来编成一个子函数就出错了,少了最后一个数,开头多了一个0。。。。。。这是主函数
#include<stdio.h>
#include<conio.h>
int main()
{
int a[]={9,8,13,4,5,6,3,2,1};
int i,j,t;
for(i=0;i<9;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<9;i++)
printf("%d ",a[i]);
getch();
}
这是弄成子函数的代码
#include<stdio.h>
#include<conio.h>
int maopao(int b[],int n);
int main()
{
int i,j;
int a[]={9,8,13,4,5,6,3,2,1};
maopao( a,9);
for(i=0;i<9;i++)
printf("%d ",a[i]);
getch();
}
int maopao(int b[],int n)
{int i,j,t;
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(b[j]>b[j+1])
{
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}
}
}