| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 729 人关注过本帖
标题:[求助]经典100例中的一个问题
只看楼主 加入收藏
anycall628
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2005-2-18
收藏
 问题点数:0 回复次数:8 
[求助]经典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()里就好用?请各位指点一下,谢了
搜索更多相关主题的帖子: 经典 
2005-07-12 20:32
tary
Rank: 1
等 级:新手上路
帖 子:780
专家分:0
注 册:2004-10-5
收藏
得分:0 
main函数写在前面,, 就不用声明了!
swap当然是函数了,,,  swap(p1,p2)是指把p1和p2交换,,,

┌→¨ ≮我可以学会对你很冷落≯¨←┐ │  <却学不╓══╦══╖会将爱> │ │¨←┐ ╭╩╮哭‖哭╭╩╮ ┌→¨│ └──┘收 ╲╱ ◇‖◇ ╲╱回└──┘
2005-07-12 22:27
天边的一片云
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-7-12
收藏
得分:0 
swap(p1,p2) int *p1,*p2; 就相当于swap(int *p1,int *p2), 这是函数定义的另一种方法,但是一般用后者。
2005-07-12 22:42
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 
以下是引用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编辑过]


土冒
2005-07-12 23:00
seeker
Rank: 1
等 级:新手上路
帖 子:172
专家分:0
注 册:2005-6-5
收藏
得分:0 
main函数写在前面,, 就不用声明了????

错了!!相反。还有swap函数两种定义都可以,

swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;
}
比较容易理解!

我相信总有一片天空属于我!http://myseeker. E-Mail:lwqcny@
2005-07-13 14:08
anycall628
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2005-2-18
收藏
得分:0 
谢谢楼上各位了,2楼的版主怎么也犯错误啊,这个程序是经典100例里边的,不是我编的,定义有2个方法我理解了,但是在main()函数里为什么没声明swap()?编译的时候也没错误?这我就不理解了

爱生活,爱编程。
2005-07-13 19:06
gong3263562
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-7-26
收藏
得分:0 
\是不是若用第二种,前面应用这个函数时要麻烦啊`~括号里要换成指针啊?



2005-07-26 18:04
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
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;
}

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-07-26 19:16
anycall628
Rank: 1
等 级:新手上路
帖 子:222
专家分:0
注 册:2005-2-18
收藏
得分:0 

爱生活,爱编程。
2005-07-26 22:54
快速回复:[求助]经典100例中的一个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016182 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved