一道c语言的题,想不起来错哪了?
//用指向指针的指针的方法对n个整数排序并输出//写一个函数来实现,在main函数中调用。
#include<stdio.h>
void sort(int**p,int n)
{
int t,i,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i;j++)
{
if(**(p+j)>**(p+(j+1)))
{
t=**(p+j);
**(p+j)=**(p+(j+1));
**(p+(j+1))=t;
}
}
}
}
int main(void)
{
int i,n,integer[256],*pt[256] ,**p;
printf("How many integers that you want to input:\n");
scanf("%d",&n);
printf("Please input these %d integers:\n",n);
for(i=0;i<n;i++)
{
scanf("%d",&integer[i]);
}
for(i=0;i<n;i++)
{
pt[i]=&integer[i];
}
p=pt;
sort(p,n);
for(i=0;i<n;i++)
{
printf("%d ",**p++);
}
}
此程序不能正常运行,但是:把sort函数中排序的那段代码改成如下就可以
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(**(p+i)>**(p+j))
{
t=**(p+j);
**(p+j)=**(p+i);
**(p+i)=t;
}
}
}
哪位高手看看,问题出哪里了???