如何更简洁的比较3个数的大小

duling509 2008-07-08 03:01:34
3个int型的数
要求越简洁越好,代码长度越短越好!
...全文
1751 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycysth 2009-04-21
  • 打赏
  • 举报
回复
感觉都由有点乱啊,呵呵
starlizhi 2008-07-08
  • 打赏
  • 举报
回复
如果是30个数,肯定是用2个for 循环嵌套排序了
huangyangweiyue 2008-07-08
  • 打赏
  • 举报
回复
ls 如果要是30个数对比呢~~~~~
duling509 2008-07-08
  • 打赏
  • 举报
回复
谢谢各位了
已经找到了明确的思路
就是a先和b比,取最小的和c比!
如果c比最小的都小了,那c肯定就是最小的了!
否则c就不可能是最小的了,这样b和c之间就不用做比较了
starlizhi 2008-07-08
  • 打赏
  • 举报
回复
我觉得这个方法最好,一个程序的简单不是看代码的多少而是看代码的易读性,我写的这个程序我感觉挺易懂的lz要加分呀。
public class qq{
public static void compare(int a,int b,int c){
int temp;
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=b;
b=c;
c=temp;
}
System.out.println("min:"+a+"\ncen:"+b+"\nmax:"+c);
}
public static void main (String[] args) {
qq.compare(5,6,3);
}
}
  • 打赏
  • 举报
回复
int a, b, c;
a = 1;
b = 2;
c = 31;
System.out.println(a > b ? (a > c ? a : c) : b > c ? b : c);


记得是2年前哈
starlizhi 2008-07-08
  • 打赏
  • 举报
回复
public class qq{
public static void main (String[] args) {
int a=100;
int b=1000;
int c=10000;
int max;
int min;
int cen;
int test;
test=a>b?a:b;
max=test>c?test:c;
test=a<b?a:b;
min=test<c?test:c;

System.out.println("max:"+max);
System.out.println("min:"+min);

}
}
lovingprince 2008-07-08
  • 打赏
  • 举报
回复
a>=b?(b>=c?c:b):(a>=c?c:a)
老紫竹 2008-07-08
  • 打赏
  • 举报
回复
参考http://www.java2000.net/viewthread.jsp?tid=1854

以前有人问过,我收藏了的
老紫竹 2008-07-08
  • 打赏
  • 举报
回复
System.out.println(a > b ? (a > c ? a : c) : b > c ? b : c);


前一个错了
jdlsfl 2008-07-08
  • 打赏
  • 举报
回复
怎么变小的了

    private static int findMin(int a, int b, int c)
{
return ((a < b ? a : b) < c) ? (a < b ? a : b) : c;
}
  • 打赏
  • 举报
回复
呵呵,这个跟原来看到有个题类似:

不用 if ?: switch 等语句,如何找出两个 int 中最大的数?
huangyangweiyue 2008-07-08
  • 打赏
  • 举报
回复

int[] arr = new int[3];

for(int i = 0;i <3 ;i++)
{
if(arr[i] < arr[i+1])
{
min = arr[i];
}
if(arr[i] > arr[i+1])
{
max = arr[i];
}
}


多少个数字比都可以。
老紫竹 2008-07-08
  • 打赏
  • 举报
回复
    int a, b, c;
a = 1;
b = 2;
c = 31;
System.out.println(a > b ? a > c ? a : b > c ? b : c : b > c ? b : c);
jdlsfl 2008-07-08
  • 打赏
  • 举报
回复
    private static int findMax(int a, int b, int c)
{
return ((a > b ? a : b) > c) ? (a > b ? a : b) : c;
}
  • 打赏
  • 举报
回复
排序输出?或者说找出最大的?再或者说找出最小的?再再或者说找出不大不小的?
duling509 2008-07-08
  • 打赏
  • 举报
回复
补充一下,只想取最小的那个数
laorer 2008-07-08
  • 打赏
  • 举报
回复
我只知道用数组可能漂亮点,
当初学C的时候,三个数比较,老长老长的代码

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧