关于基础指针

来源:百度知道 编辑:UC知道 时间:2024/06/02 01:37:56
好心人,帮我看看这道题啊!谢谢了,怎么错了呢?

#include<stdio.h>
void main()
{int *p,a[10]={1,2,3,4,5,6,7,8,9,0},i,t;
p=a;
for(i=0;i<10;i++)
{ for(p=a;p<p+10-i-1;p++){if(*p>*(p+1)) t=*p;*p=*(p+1);*(p+1)=t;};}
p=a;
for(i=0;i<10;i++,p++)
printf("%d",*p);
}
1楼的,我刚在vc6.0++ ,试过了,非法程序,因该是地址的问题,帮我分析下吧

#include<stdio.h>
void main()
{int *p,a[10]={1,2,3,4,5,6,7,8,9,0},i,t=0,j;
p=a;
for(i=0;i<10;i++)
{
for(p=a,j=0;j<9;p++)
{
if(*p<*(p+1))
{
t=*p;
*p=*(p+1);
*(p+1)=t;
}
j++;
}
}
p=a;
for(i=0;i<10;i++,p++)
printf("%d",*p);
}
不知道程序的功能啊,我猜是起泡排序吧。
帮你改好了。
如果用VC++6.0的话是不用加getch();的。

二楼的,你的程序倒数第二行要加上一个getch()吧,要不然运行了也看不见
#include<stdio.h>
void main()
{int *p,a[10]={1,2,3,4,5,6,7,8,9,0},i,t=0,j;
p=a;
for(i=0;i<10;i++)
{
for(p=a,j=0;j<9;p++)
{
if(*p<*(p+1))
{
t=*p;
*p=*(p+1);
*(p+1)=t;
}
j++;
}
}
p=a;
for(i=0;i<10;i++,p++)
printf("%d ",*p);
getch();
}

for(p=a;p<p+10-i-1;p++){if(*p>*(p+1)) t=*p;*p=*(p+1);*(p+1)=t;};}
上面这句倒数第二个字符是;号,这个是多余的

我认为是你<