论坛: 编程破解 标题: 求助:一道数据结构考研题 复制本贴地址    
作者: gk_redondo [gk_redondo]    论坛用户   登录
写一个函数void swap(int x,int y),完成将变量x和变量y的值交换,要求不用其他辅助变量

地主 发表时间: 04-08-31 22:59

回复: lida1818 [lida1818]   论坛用户   登录
考研题?操,这要是是考研题,我都快是博士后。

x+=y,y=x-y,x-=y;

B1层 发表时间: 04-09-01 01:29

回复: 286 [unique]   版主   登录
呵呵,是够可以的。
这里有两个问题,一是作为考研题,题太简单了。
二是void swap(int x,int y)无返回值,也就是说,通过返回值不可能得到交换结果;而形式参数x,y传的是值,而不是地址,也就是说,交换后仍无法得到交换结果。那么试问,就是真的交换了,有什么用?怎么用?

解法同烟兄。

B2层 发表时间: 04-09-01 09:26

回复: gk_redondo [gk_redondo]   论坛用户   登录
意思就是实参不通过指针不可能交换喽,那这个题有个锤子意思~~
谁说过考研题很难吗?~~~

B3层 发表时间: 04-09-01 12:39

回复: 286 [unique]   版主   登录
我说的很明白呀,没有指针,返回值也可以呀,二者总得有其一。
我也没说过考研题很难呀,但也不会这么简单呀。
呵呵。


B4层 发表时间: 04-09-01 14:49

回复: gk_redondo [gk_redondo]   论坛用户   登录
但是返回值也只能返回有一个呀,这个论坛办的不错啊



[此贴被 为爱种菜(gk_redondo) 在 09月01日15时23分 编辑过]

B5层 发表时间: 04-09-01 15:21

回复: 286 [unique]   版主   登录
兄弟,谁说返回值只能返回一个了?如果你愿意你可以返回一个65535个变量的值,这足够了吧?

再说了,返回一个就不能用了吗?
规定如下:
int swap(int x,int y) 返回后面的数。

int a,b,ret;//下面交换这两个数。
printf("请输入这两个要交换的数:");
scanf("%d,%d",&a,&b);
printf("交换以前,两个数为:%d %d\n",a,b);
ret=swap(a,b);
printf("交换以后的数分别为:%d %d\n",ret,a+b-ret);

不是吗?

B6层 发表时间: 04-09-01 16:15

回复: gk_redondo [gk_redondo]   论坛用户   登录
对头,老把问题复杂化,看样子得换个方式思考了
谢谢286了~~
随便一问:求n的阶乘的算法,要考虑溢出``

B7层 发表时间: 04-09-02 11:54

回复: lida1818 [lida1818]   论坛用户   登录
求楼上的一件事,在下读书不多,考研在我看来是很伟大的一件事。你能不能把你的考研复习题中最难的几个放上来,让我饱饱眼福?



另:286在B6所说的及我在B1提供的方法,是告诉你有这样一种可能,但就本问题来说,都不是简化了而是复杂化了程序,简直就是脱裤子放屁(我是个粗人,莫怪)。

[此贴被 烟雨平生(lida1818) 在 09月02日15时55分 编辑过]

B8层 发表时间: 04-09-02 15:46

回复: hannyu [hannyu]   论坛用户   登录
在下也是一考研人,考研题的确算不上难就算是清华也难不到哪里去,不过对于考研来说一定要达到非常熟练的感觉。
哪天遇到数据结构中的难题一定贴上来让大伙瞧瞧!

B9层 发表时间: 04-09-02 16:47

回复: gk_redondo [gk_redondo]   论坛用户   登录
我还没复习,等遇上了一定发

B10层 发表时间: 04-09-02 19:52

回复: sniper167 [sniper167]   论坛用户   登录
呵呵,很久没有在本版看见这种帖子了。。。

B11层 发表时间: 04-09-03 21:27

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号