关于指针的冒泡排序问题。。。
大哥大姐帮忙看一下这个程序有什么问题,为什么排序不成功
#include<stdio.h>
int main()
{
int a[9]={5,7,8,4,2,3,11,47,89},n=9;
void sort_out(int *p,int n)
{
int temp,i,j;
for(i=0;i<n;i++)
{
printf("%4d",*(p+i));
}
for(i=0;i<n;i++)
for(j=0;j<n-i;j++)
{
if(*(p+j)>*(p+j+1))
{
temp = *(p+j);
*p = *(p+j+1);
*(p+j+1) = temp;
}
}
}
sort_out(a,n);
printf("\n");
for (n=0;n<9;n++)
{
printf("%4d",a[n]);
}
return 0;
}
是不是指针的使用上出了问题?
[解决办法]
if(*(p+j)>*(p+j+1))
{
temp = *(p+j);
*p = *(p+j+1);
*(p+j+1) = temp;
}