题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2002
Problem Description
根据输入的半径值,计算球的体积。
 Input
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
 Output
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
 Sample Input
1
1.5
 Sample Output
4.189
14.137Hint
#define PI 3.1415927代码:
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in);
double r;
double s;
final double PI=3.1415927;
while (cin.hasNext()) {
r = cin.nextDouble();
s = 4*PI*r*r*r/3;
System.out.printf("%.3f\n",s);
}
}
}
OJ结果:Presentation Error
求大侠帮忙看下,谢谢。

解决方案 »

  1.   

    while (cin.hasNext()) 
    改成
    while (true) 
    试下
      

  2.   

    变成Wrong Answer了那样好像会死循环。
      

  3.   

    改后代码:
    import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in);
    double r;
    double s;
    final double PI=3.1415927;
    int i=0;
    while (cin.hasNext()) {
    r = cin.nextDouble();
    s = 4*PI*r*r*r/3;
    if(i==0)
    {
    System.out.printf("%.3f",s);
    i=1;
    }
    else
    System.out.printf("\n%.3f",s);
    }
    }
    }
    也是Presentation Error哦。。
      

  4.   


    acm死循环也可以过的System.out.printf("%.3f\n",s);
    改成
    System.out.printf("%.3lf\n",s);double要用%lf
      

  5.   

    java运行System.out.printf("%.3lf\n",s);的时候出错哦。。
    at java.util.Formatter$FormatSpecifier.<init>(Unknown Source)
    at java.util.Formatter.parse(Unknown Source)
    at java.util.Formatter.format(Unknown Source)
    at java.io.PrintStream.format(Unknown Source)
    at java.io.PrintStream.printf(Unknown Source)
    at Main.main(Main.java:15)
      

  6.   

    acm因为要测多组数据,所以有时候要死循环,只要满足输入输出
      

  7.   

    import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in);
    double r;
    double s;
    final double PI=3.1415927;
    while (true) {
    r = cin.nextDouble();
    s = 4*PI*r*r*r/3;
    System.out.printf("%.3lf\n",s);
    }
    }
    }
    Wrong Answer