| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖
标题:空前大虾进
只看楼主 加入收藏
woainiwqz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-9-10
收藏
 问题点数:0 回复次数:4 
空前大虾进

小弟昨天问的问题,题目为:任意给定4个整数a,b,c,d,编制从打道小顺序输出的程序。您给了个程序:

#define swap(x,y) {x=x+y;y=x-y;x=x-y;}

main() {int a,b,c,d;

printf("Input a,b,c,d:");

scanf("%d%d%d%d",&a,&b,&c,&d);

if(a>b) swap(a,b)

if(a>c) swap(a,c)

if(a>d) swap(a,d)

if(b>c) swap(b,c)

if(b>d) swap(b,d)

if(c>d) swap(c,d)

printf("The order is:%d,%d,%d,%d\n",a,b,c,d);

getch();

}

请问不用循环可以解次题么?或者您可以解释一下您给的程序么?

2004-09-11 18:08
woainiwqz
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-9-10
收藏
得分:0 
2004-09-11 18:42
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 

#define swap(x,y) {x=x+y;y=x-y;x=x-y;}

使得x和y交换值

但是,如果这样:

#define swap(x,y) {x=x^y;y=x^y;x=x^y;}

在速度上应该更快一些,毕竟位运算比加法运算要快


永不放弃!
2004-09-11 19:07
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
以下是引用woainiwqz在2004-09-11 18:08:52的发言:

小弟昨天问的问题,题目为:任意给定4个整数a,b,c,d,编制从打道小顺序输出的程序。您给了个程序:

#define swap(x,y) {x=x+y;y=x-y;x=x-y;}

main() {int a,b,c,d;

printf("Input a,b,c,d:");

scanf("%d%d%d%d",&a,&b,&c,&d);

if(a>b) swap(a,b)

if(a>c) swap(a,c)

if(a>d) swap(a,d)

if(b>c) swap(b,c)

if(b>d) swap(b,d)

if(c>d) swap(c,d)

printf("The order is:%d,%d,%d,%d\n",a,b,c,d);

getch();

}

请问不用循环可以解次题么?或者您可以解释一下您给的程序么?

如果排序的数较少的话,可以不用循环,上面就没用到循环。

#define swap(x,y) {x=x+y;y=x-y;x=x-y;}

这是一个带参数的宏,

如果程序中出现swap(x,y)

就以他后面的字符串:{x=x+y;y=x-y;x=x-y;} 代替,

连括号和符号也一起带进去。


2004-09-12 13:56
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 
以下是引用kuangjingbo在2004-09-11 19:07:04的发言:

#define swap(x,y) {x=x+y;y=x-y;x=x-y;}

使得x和y交换值

但是,如果这样:

#define swap(x,y) {x=x^y;y=x^y;x=x^y;}

在速度上应该更快一些,毕竟位运算比加法运算要快

我用2,3检查了一下这个东西:

#define swap(x,y) {x=x^y;y=x^y;x=x^y;}

发现是错的,应该是这样的:

#define swap(x,y) {x=x^y;y=x^y;x=x|y;}

不知道对不对?

[此贴子已经被作者于2004-09-12 14:01:53编辑过]


2004-09-12 14:00
快速回复:空前大虾进
数据加载中...
 
   



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

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