import java.io.*;
public class CompCicle{
public static void main(String args[]){
double r,d,a;
final double PI=3.1415926;
try{
r=System.in.read();
d=2*PI*r;
a=PI*r*r;
System.out.println(d);
System.out.println(a);

}catch (IOException e){
} }
}
请问各位,输出结果为什么总是不对?我需要怎样处理输入?

解决方案 »

  1.   

    你是在cmd命令窗口编绎的吗?
      

  2.   

    r=System.in.read();  这个只是读入了一个字符而已,不是读入一个整数你可以使用new BufferedReader(new InputStreamReader(System.in)).readLine()之类
      

  3.   

    没有用过,不知道怎么拿到输入的参数,但是System.in.read()是返回一个int数据,你能拿到一个整数r吗?你试着打印一下System.out.println(r)
      

  4.   

    read()读入的是一个字节.是你输入的字符的第一个字节.
      

  5.   

    debug一下就知道了,你输入1,读取的时候其实是读成49.0了。照四楼的方法应该可以
      

  6.   

    这样可以:import java.util.Scanner;public class CompCicle {
      public static void main(String args[]) {
        double r, d, a;
        Scanner in = new Scanner(System.in);
        r = in.nextDouble();
        d = 2
            * Math.PI * r;
        a = Math.PI
            * r * r;
        System.out.println(d);
        System.out.println(a);  }
    }