分页: 1 / 1

c 编译 出现段错误???

发表于 : 2008-11-19 19:54
guangdianzi521
#include<stdio.h>
int main(void)
{ int swap(int *p1,int *p2);
int a,b,c;
int *p1,*p2,*p3;
printf("Input three integers a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
if(a>b) swap(a,b);
if(a>c) swap(a,c);
if(b>c) swap(b,c);
printf("now,the order is:%d,%d,%d\n",a,b,c);
}
swap(int *p1,int *p2)
{
int p;
p=*p1;
*p1=*p2;
*p2=*p1;

}

在gcc 中编译出现段错误!!!

Re: c 编译 出现段错误???

发表于 : 2008-11-19 20:02
HuntXu
把整数当指针传了?

Re: c 编译 出现段错误???

发表于 : 2008-11-19 20:07
ws_105
楼主不看警告信息与错误信息的吗?

代码: 全选

if(a>b) swap(a,b);
if(a>c) swap(a,c);
if(b>c) swap(b,c);
你把一个整数赋值给指针,能不错吗? 改为

代码: 全选

if(a>b) swap(p1, p2);
if(a>c) swap(p1, p3);
if(b>c) swap(p2, p3);

Re: c 编译 出现段错误???

发表于 : 2008-11-19 20:07
HuntXu

代码: 全选

#include<stdio.h>
int main(void)
{ int swap(int *p1,int *p2); 
int a,b,c;
int *p1,*p2,*p3;
printf("Input three integers a,b,c:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
if(a>b) swap(&a,&b);
if(a>c) swap(&a,&c);
if(b>c) swap(&b,&c);
printf("now,the order is:%d,%d,%d\n",a,b,c);
}
swap(int *p1,int *p2)
{
int p;
p=*p1;
*p1=*p2;
*p2=p;
}
最后那行也错了...-_-...
而且不晓得你main()里的p1,p2,p3用来干嘛的...

Re: c 编译 出现段错误???

发表于 : 2008-11-19 21:15
guangdianzi521
谢谢!!!

Re: c 编译 出现段错误???

发表于 : 2008-11-21 15:06
Khan.Lau
这个叫执行出现段错误....
编译啥事没有...