c 编译 出现段错误???

软件和网站开发以及相关技术探讨
回复
guangdianzi521
帖子: 9
注册时间: 2008-09-11 1:20

c 编译 出现段错误???

#1

帖子 guangdianzi521 » 2008-11-19 19:54

#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 中编译出现段错误!!!
附件
Screenshot.png
zhuatu.png
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

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

#2

帖子 HuntXu » 2008-11-19 20:02

把整数当指针传了?
HUNT Unfortunately No Talent...
头像
ws_105
帖子: 313
注册时间: 2008-10-24 8:02

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

#3

帖子 ws_105 » 2008-11-19 20:07

楼主不看警告信息与错误信息的吗?

代码: 全选

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);
Ubuntu 8.04 @ Intel Pentium D 925 + Intel 945G Chipset + DDR2 1.0G + SATA 160G
http://hi.baidu.com/ws_105
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

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

#4

帖子 HuntXu » 2008-11-19 20:07

代码: 全选

#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用来干嘛的...
HUNT Unfortunately No Talent...
guangdianzi521
帖子: 9
注册时间: 2008-09-11 1:20

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

#5

帖子 guangdianzi521 » 2008-11-19 21:15

谢谢!!!
Khan.Lau
帖子: 2
注册时间: 2006-02-27 23:33

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

#6

帖子 Khan.Lau » 2008-11-21 15:06

这个叫执行出现段错误....
编译啥事没有...
回复