| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 759 人关注过本帖
标题:关于比较后输出的问题。。。不知道什么地方出错了。。。
只看楼主 加入收藏
冒着傻气
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-12-2
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:9 
关于比较后输出的问题。。。不知道什么地方出错了。。。
a,b,c按从大到小输出的程序,自己实在不知道错什么地方了,各位帮一下,谢啦!!(感觉输出的值好像是溢出了,为什么会发生溢出呢?)
#include<iostream>
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c;
    if(a<b)
        d=a;a=b;b=d;   
    if(a<c)
        d=a;c=a,a=d;
    if(b<c)
        d=c;c=b;b=c;
    cout<<a<<" "<<b<<" "<<c<<endl;
    return 0;


}

搜索更多相关主题的帖子: 输出 
2010-03-30 19:22
james230932
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:162
专家分:629
注 册:2008-1-20
收藏
得分:4 
用异常处理try catch

老天给了我十根纤纤玉指,我却用它们来挖鼻屎。
2010-03-30 19:41
冒着傻气
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-12-2
收藏
得分:0 
回复 2楼 james230932
不明白楼上什么意思。。。
2010-03-30 19:51
ljt
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:191
专家分:431
注 册:2009-4-6
收藏
得分:4 
以下是引用冒着傻气在2010-3-30 19:22:42的发言:

a,b,c按从大到小输出的程序,自己实在不知道错什么地方了,各位帮一下,谢啦!!(感觉输出的值好像是溢出了,为什么会发生溢出呢?)
#include
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c;
    if(a
你那交换顺序错了
应该是这样:
    if(a<b)
        d=a;a=b;b=d;   
    if(a<c)
        d=a;a=c;c=d;
    if(b<c)
        d=c;c=b;b=d;
2010-03-30 22:20
james230932
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:162
专家分:629
注 册:2008-1-20
收藏
得分:0 
以下是引用ljt在2010-3-30 22:20:29的发言:

你那交换顺序错了
应该是这样:
    if(a
貌似楼上的还不行吧。。

老天给了我十根纤纤玉指,我却用它们来挖鼻屎。
2010-03-31 09:11
书呆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:55
专家分:188
注 册:2010-3-26
收藏
得分:4 
    if(a<b)
    {
        d=a;
        a=b;
        b=d;
    }
    if(a<c)
    {
        d=a;
        a=c;
        c=d;
    }
    if(b<c)
    {
        d=c;
        c=b;
        b=d;
    }

沉醉东风月下读。柴门闭,莫管客来无。
2010-03-31 09:58
ljt
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:191
专家分:431
注 册:2009-4-6
收藏
得分:0 
以下是引用james230932在2010-3-31 09:11:59的发言:

貌似楼上的还不行吧。。
行,我都运行出来了
2010-03-31 20:11
shiyuehai
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:116
注 册:2009-9-4
收藏
得分:4 
程序代码:
 if(a<b)
        d=a;a=b;b=d;   
    if(a<c)
        d=a;c=a,a=d;
    if(b<c)
        d=c;c=b;b=c;
注意的第二个if里面的内容,首先,你先保护好a的值了,既然a的值保护好了,下一步就是改变a的值,但你确把a的值赋给了c,即此时c的值跟d的值都是a,最后你把d的值赋给a,造成了a跟c相等了,正确的应该是d=a;a=c;c=d;还有前面那些是3个语句了,应该用大括号封装起来,还有标点也错了,第三个也错了,应该是b=d;
程序代码:
#include<iostream>
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c;
    if(a<b)
    {
        d=a;
        a=b;
        b=d;
    }   
     if(a<c)
    {
        d=a;
        a=c;
        c=d;
    }
    if(b<c)
    {
        d=c;
        c=b;
        b=d;
    }
    cout<<a<<" "<<b<<" "<<c<<endl;
    return 0;


}

按照你思路改的,应该可以了

[ 本帖最后由 shiyuehai 于 2010-3-31 21:39 编辑 ]
2010-03-31 21:37
亚小南
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:136
注 册:2009-11-19
收藏
得分:4 
楼上说得已经很清楚了
首先是交换错误
再就是缺少大括号
2010-04-01 16:50
冒着傻气
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-12-2
收藏
得分:0 
谢谢大家啦
2010-04-01 20:59
快速回复:关于比较后输出的问题。。。不知道什么地方出错了。。。
数据加载中...
 
   



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

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