| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 609 人关注过本帖
标题:新手,求解。想使a,b,c从小到大输出,结果输出的还是原来的顺序。
只看楼主 加入收藏
我爱敲代码
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:70
专家分:165
注 册:2013-4-23
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:7 
新手,求解。想使a,b,c从小到大输出,结果输出的还是原来的顺序。
public class hello {
    public static void main(String args[]){
        int a=9,b=7,c=5,t;
        if(a>b)
        {
            t=a;
            a=b;
            b=t;
        }
        if(a>c)
        {
            t=a;
            a=b;
            b=t;
        }
        if(b>c)
        {
            t=b;
            b=c;
            c=t;
        }
        System.out.println("a="+a+",b="+b+",c="+c);
    }

}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: public hello 
2013-09-24 22:35
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:1 
新人,鼓勵一下。

♂ 死后定当长眠,生前何须久睡。♀
2013-09-24 23:16
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:5 
这样啊,你第一次或者写的比较少的时候,尽量把每一步操作的值都给打印出来,这样你就可以看出问题出在哪里了
还有基础一定要扎实些,像这类型的问题,自己可以先想想问题出在哪里,打印每一步值,如果还是不懂,想想是不是变量问题,你的变量首先是int型的。int型比大小要注意数值大小问题,因为这类型值是有界限的,超了就不对了,再者这个是类变量。类变量的作用域调用方法,方法体内变量等,使用注意,等等都要了解。
建议:
格式问题:定义这类型的类变量,最好是分开定义。
变量初始化:由于是基本类型可以不用付初始值,但是其他类型以后还要记得赋值。
逻辑问题:以后写代码实现之前,最好将逻辑都搞清楚,你要实现什么功能,什么判断循环逻辑,你这个明显是自己没有想好乱写的
问题回答:
你的循环很简单,你一个一个打印出来看就可以了,也可以不打印,就看看吧,你第一个判断将值换了下,a=7 b=9 ,第二个判断自己看吧,反正就是你的逻辑有问题代码是没有错的,是你路子错了,你要知道你变量定义在这个方法体内。他的值是作用于这个方法体,所以你第二个判断的时候,a=7.

学海无涯#¥%……&*(
2013-09-25 09:46
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:5 
要不然你就干脆用三元表达式来实现吧(别把a,b,c的值换来换去的了):
public class hello {
    public static void main(String args[]){
        int a=9,b=7,c=5;
        System.out.println(
           "a=" + ((a <= b && a <= c) ? a : ((b <= a && b <= c) ? b : (c <= a && c <= b) ? c : 0)) +
          ",b=" + ((a <= b && a >= c) ? a : ((b <= a && b >= c) ? b : (c <= a && c >= b) ? c : 0)) +
          ",c=" + ((a >= b && a >= c) ? a : ((b >= a && b >= c) ? b : (c >= a && c >= b) ? c : 0))
        );
    }
}

♂ 死后定当长眠,生前何须久睡。♀
2013-09-25 10:08
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:2 
这还只是三个变量要是三十个,三百个,三千个你怎么排?
那要写多少代码,数组会用就用数组,排序哪有这样的

学海无涯#¥%……&*(
2013-09-25 12:39
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:3 
不是一般方法,具体问题具体对待。排序的变量多了,可以使用其他数据结构和排序算法。

♂ 死后定当长眠,生前何须久睡。♀
2013-09-25 13:06
java小蚂蚁
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:上海
等 级:贵宾
威 望:18
帖 子:558
专家分:2186
注 册:2013-7-2
收藏
得分:3 
变量不多,逻辑思维比较厉害的话,搞几个三目运算符。

学海无涯#¥%……&*(
2013-09-25 13:40
快速回复:新手,求解。想使a,b,c从小到大输出,结果输出的还是原来的顺序。
数据加载中...
 
   



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

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