>max=a;   
>if(max<b){t=b;b=max;max=t;}
>else if(max<c) {t=c;c=max;max=t;}   
>else if(max<d) {t=d;d=max;max=t;}   
>System.out.println("the max is :"+"  "+max); 
这段程序如果是求最大值得话,就错了,算法有错。改成
max = Math.max( Math.max(a,b), Math.max(c,d) );

解决方案 »

  1.   

    是的,算法错了!:)
    而且,传回的是ascii吗,不是实际的数字
      

  2.   


    java 对System.out 和 System.err都封装的很好,唯独System.in 没有受到好的照顾,因此,要从System.in中获得正确的输入数据,就只能自己动手封装。应当这样:String str = new String();
    int i=0;DataInputStream in = new DataInputStream(new BufferedInputStream(System.in));
    ...
    str = in.readln();
    ...
    i = (new Integer(str)).intValue();类似这样,应该就可以了,试试看行不行!注:上述内容部分摘自thinking in java - 10.5.4