import java.io.*;
 public class Num {
  static int a,b,c,d;
  public static void main(String[] art)throws IOException{
   int i;
     i=System.in.read();
    a=i%10;  b=(i/10)%10;
     c=(i/100)%10;  d=i/1000;
   System.out.println("i个位是:"+a);
   System.out.println("i十位是:"+b);
   System.out.println("i百位是:"+c);
   System.out.println("i千位是:"+d);
 }
  没办法了C 语言信管的试题 用Java  就是得不到结果!!!
  帮忙讲一讲!!!!!!!
    谢谢!!!

解决方案 »

  1.   

    System.in.read()只会读入你输入的第一个字符的ASCII值
    改成:
     public class Num {
      public static void main(String[] args){
    int a,b,c,d;
       int i = Integer.parseInt(args[0]) ;
        a=i%10;  b=(i/10)%10;
         c=(i/100)%10;  d=i/1000;
       System.out.println("i个位是:"+a);
       System.out.println("i十位是:"+b);
       System.out.println("i百位是:"+c);
       System.out.println("i千位是:"+d);
     }
    }用java Num 123执行就可以了
      

  2.   

    import java.io.*;
     public class Num {
      static int a,b,c,d;
      public static void main(String[] art)throws IOException{
       int i;
         i=System.in.read();
        a=i%10;  b=(i/10)%10;
         c=(i/100)%10;  d=i/1000;
       System.out.println("i个位是:"+a);
       System.out.println("i十位是:"+b);
       System.out.println("i百位是:"+c);
       System.out.println("i千位是:"+d);
     }
    }//掉了一个大括号
      

  3.   

    楼主,System.in.read()读入的是字符的ACSII码,你输入1,它就读成49了。可能Java本来就不是为写命令行程序而设计的,在Java里写一个命令行程序太麻烦了,我想写一个像C里面那种可以反复输入的简单程序就是搞不定,搞了半天才勉强出来这么一个东西:public class Num {
    public static void main(String[] args) throws java.io.IOException {
    int i;
    StringBuffer result = new StringBuffer();
    while(Character.isDigit(i = System.in.read()))
    result.append((char)i);
    int resultInt = Integer.parseInt(result.toString());
    System.out.println("i个位是:" + resultInt % 10);
    System.out.println("i十位是:" + resultInt / 10 % 10);
    System.out.println("i百位是:" + resultInt / 100 % 10);
    System.out.println("i千位是:" + resultInt / 1000 % 10);
    }
    }
      

  4.   

    感动ing!!!!!!!!!!!!!
     谢谢各位这么热心! 作天晚上刚发上来!! 感谢!
       原来是ACSII码的问题!