[求助]经典100例中的一个问题
【程序66】
题目:输入3个数a,b,c,按大小顺序输出。
1.程序分析:利用指针方法。
2.程序源代码:
/*pointer*/
main()
{
int n1,n2,n3;
int *pointer1,*pointer2,*pointer3;
printf("please input 3 number:n1,n2,n3:");
scanf("%d,%d,%d",&n1,&n2,&n3);
pointer1=&n1;
pointer2=&n2;
pointer3=&n3;
if(n1>n2) swap(pointer1,pointer2);
if(n1>n3) swap(pointer1,pointer3);
if(n2>n3) swap(pointer2,pointer3);
printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);
}
swap(p1,p2)
int *p1,*p2;
{int p;
p=*p1;*p1=*p2;*p2=p;
}
我的问题是:swap(p1,p2)
int *p1,*p2;
{int p;
p=*p1;*p1=*p2;*p2=p;
}
这里我看不懂,swap是函数?swap(p1,p2);这一句又算什么?swap在前面没有声明怎么在
main()里就好用?请各位指点一下,谢了
搜索更多相关的解决方案:
经典
----------------解决方案--------------------------------------------------------
main函数写在前面,, 就不用声明了!
swap当然是函数了,,, swap(p1,p2)是指把p1和p2交换,,,
----------------解决方案--------------------------------------------------------
swap(p1,p2) int *p1,*p2; 就相当于swap(int *p1,int *p2), 这是函数定义的另一种方法,但是一般用后者。
----------------解决方案--------------------------------------------------------
以下是引用tary在2005-7-12 22:27:37的发言:
main函数写在前面,, 就不用声明了!
swap当然是函数了,,, swap(p1,p2)是指把p1和p2交换,,,
老师教你的么?
PS:楼主那个swap函数干吗不写成:
swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;
}
这样不是更短更好看一些么
[此贴子已经被作者于2005-7-12 23:01:46编辑过]
----------------解决方案--------------------------------------------------------
main函数写在前面,, 就不用声明了????
错了!!相反。还有swap函数两种定义都可以,
swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;
}
比较容易理解!
----------------解决方案--------------------------------------------------------
谢谢楼上各位了,2楼的版主怎么也犯错误啊,这个程序是经典100例里边的,不是我编的,定义有2个方法我理解了,但是在main()函数里为什么没声明swap()?编译的时候也没错误?这我就不理解了
----------------解决方案--------------------------------------------------------
\是不是若用第二种,前面应用这个函数时要麻烦啊`~括号里要换成指针啊?
----------------解决方案--------------------------------------------------------
1.关于声明问题
ANSI C标准有两种版本,即俗称的C89 、C99。
a . C89中,如果定义的函数没有定义返回类型,将默认为返回int ,这个就是隐含的int 规则。
b. C89中,如果返回类型是int 的函数可以不声明。
c. C99标准废弃以上两条。
2。
swap(p1,p2)
int *p1,*p2; //这种定义方式称为古典型,不建议使用,因为新的编译器可能不支持
{int p;
p=*p1;*p1=*p2;*p2=p;
}
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------