| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1699 人关注过本帖
标题:求助,输入任意两个数存放于num1与num2,让小数存放在num1,大数存放在num2 ...
只看楼主 加入收藏
小小编程员
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-10-21
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
求助,输入任意两个数存放于num1与num2,让小数存放在num1,大数存放在num2,并输出最大数。
#include<stdio.h>
int main()
{
int n1,n2,n3;
scanf("%d%d",&n1,&n2);
n3=n1;
n1=n1>n2?n1:n2;
n2=n1<n2?n2:n1;
printf("%d",n2);
return 0;
}感觉是错的,但验证后又是对的,
就是不懂n3=n1;
n1=n1>n2?n1:n2;
n2=n1<n2?n2:n1;
是什么意思?
请高手们指教一下
搜索更多相关主题的帖子: 小数 大数 输出 输入 
2010-10-21 21:54
遮天云
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:农村一小伙
等 级:贵宾
威 望:12
帖 子:1132
专家分:2671
注 册:2010-6-1
收藏
得分:2 
这是条件表达式的运算啊~,用法书上有。我就不详细说了。楼主好好体会下哈~,或说出你不明白在哪?这样好给你具体说说
2010-10-21 21:58
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:2 
结果是对了?这段代码只有输出最大值这部分是对了。其结果是将n1,n2全变成最大值。并没有完成将小的放n1大的放n2的目的。
虽然我不喜欢这段代码,但觉得楼主有可能抄错了。原代码可能是
n3=n1;
n1=n1>n2?n2:n1;
n2=n3<n2?n2:n3;
不管怎么说,这代码挺没意思的。
if(n1>n2){n1=n2;n2=n3;}就可以了。
想玩新奇的你还可以这么写
if(n1>n2){n1+=n2;n2=n1-n2;n1=n1-n2;}

重剑无锋,大巧不工
2010-10-21 22:15
侧卫宝宝
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2010-10-14
收藏
得分:2 
n3=n1;
n1=n1>n2?n1:n2;
n2=n1<n2?n2:n1;
这个是一个排序和比较大小的混合语法
你可以不这么写啊……
int main()
{
int n1,n2;
scanf("%d%d",&n1,&n2);
n1=n1>n2?n1:n2;
printf("%d",n1);
return 0
}
2010-10-21 22:17
wuchaoyu673
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2010-3-14
收藏
得分:2 
这是一个三目算符,c中的唯一一个。n1=n1>n2?n2:n1;
意思是if (n1>n2),n1=n2,else n1=n1。
你整个代码不能将小值给num1。你自己可以验证
2010-10-21 22:31
小小编程员
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2010-10-21
收藏
得分:0 
回复 3楼 beyondyf
thanks
2010-10-21 22:31
wangdefeng
Rank: 1
等 级:新手上路
帖 子:8
专家分:6
注 册:2010-10-5
收藏
得分:2 
n3=n1;就是把n1的值赋给n3
n1=n1>n2?n1:n2;就是n1与n2作比较,如果n1大于n2那么就把n1赋给n1;反之就把n2赋给n1.
n2=n1<n2?n2:n1;与上面类似。
2010-10-21 23:13
wjw890107
Rank: 1
来 自:河南郑州
等 级:新手上路
帖 子:8
专家分:3
注 册:2010-3-15
收藏
得分:2 
回复 楼主 小小编程员
n3=n1;可以省掉的,3个变量没赋初值,大部分编译器都会默认其为0;至于三目条件运算符,有一般形式 a=(a>b)?a:b;
运算符的优先级问题再好好看看书


[ 本帖最后由 wjw890107 于 2010-10-21 23:20 编辑 ]
2010-10-21 23:17
zhongying822
Rank: 2
等 级:论坛游民
帖 子:16
专家分:17
注 册:2010-10-11
收藏
得分:2 
你这样做如果第一句执行完。n1就是大的。第二句做完以后,如果本来是n1比n2大,结果会对,否则就输出两个相同的数
2010-10-22 06:37
huyinke
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-10-24
收藏
得分:2 
这么不更简单嘛。。。

main(){
int a,b,c;
scanf("%d%d",&a,&b);
c=a>b?a:b;
printf("%d",c);
}
2010-10-25 21:15
快速回复:求助,输入任意两个数存放于num1与num2,让小数存放在num1,大数存放在 ...
数据加载中...
 
   



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

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