Java语言程序设计(第三版)第二章课后习题答案(仅供参考)

Hero 2019-05-15 01:45141 阅读

2.1   注意不同类型转换

1 import java.util.Scanner;
2 
3 public class Ch02 {
4     public static void main(String[] args) {
5         Scanner sc = new Scanner(System.in);
6         double f = sc.nextDouble();
7         double t = (5.0/9)*(f-32);   //  注意 (5/9) 结果为 整形 要写成 (5.0/9)
8         System.out.println(t)
9 }

 

2.2

 1 import java.util.Scanner;
 2 
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         System.out.println("请输入圆柱体半径和高:");
 7         double r = sc.nextDouble();
 8         double h = sc.nextDouble();
 9         double v = Math.PI * r * r * h;  //圆周率方法  Math.PI
10         System.out.println(v);
11 }

 

2.3

 1 import java.util.Scanner;
 2 
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         System.out.println("请输入体重和身高:");
 7         double g = sc.nextDouble();
 8         double h = sc.nextDouble();
 9         double BMI = g / (h * h);
10         System.out.println(BMI);
11 }

 

2.4  使用 循环 每次对 个位 取数相加 取数后 除以10 使前一位 变为 个位 继续 判断小于等于0时停止

 1 import java.util.Scanner;
 2 
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         int sum = 0;
 6         Scanner sc = new Scanner(System.in);
 7         int num1 = sc.nextInt();
 8         while (num1 > 0)        // 与 0 比较 判断 是否 需要 取数
 9         {
10             sum += (num1%10);   // 通过取余  获得个位数字
11             num1 /= 10;         // 每次取余后 除以10 
12         }
13         System.out.println(sum);
14 }

 

2.5  注意 System.currentTimeMillis()方法 返回 long 形 需要转换为 int

 1 public class Ch02 {
 2     public static void main(String[] args) {
 3         // 通过 System.currentTimeMillis() 方法 获得 从1970年1月1日 00:00:00 到现在的 毫秒数
 4         // 28800000 是 格林时间 与 我们 时区 的 时间差值
 5         // 对 86400000 取余 是 把 满一天的时间都去掉 获取多出来的不足一天的时间
 6         int t = (int)((System.currentTimeMillis()+28800000)%86400000);
 7         int hour = t/3600000;               // 除 3600000 获取满小时的个数 即 求小时 为几点
 8         int mine = t%3600000/60000;         // 计算 不足一小时 的时间 里 有多少分钟
 9         int s = t%3600000%60000/1000;        // 计算不足一分钟的时间里 有多少秒  不要忘记 除以 1000 (因为 单位 为 毫秒)
10         System.out.println("当前时间: "+hour+":"+mine+":"+s+"  GMT");
11 }

 

2.6  a 不能为 0 

  b2 - 4 * a * c  不能为 0

 1 import java.util.Scanner;
 2 
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         double sum,a,b,c,t;
 6         Scanner sc = new Scanner(System.in);
 7         while (true) {
 8             a = sc.nextDouble();
 9             b = sc.nextDouble();
10             c = sc.nextDouble();
11             t = b*b-4*a*c;
12             if (a == 0) {
13                 System.out.println("a 不能为 0,请重新测试 ^_^");
14             } else if (t < 0) {
15                 System.out.println("b*b-4*a*c不能为0,请重新测试");
16             }
17             else
18             {
19                 break;
20             }
21         }
22         sum = ((-b+Math.sqrt(t)/(2*a)));     //( 2*a )  注意加括号 
23         System.out.println(sum);

 

2.7  注意计算公式先后顺序  多使用小括号

 1 import java.util.Scanner;
 2 
 3 public class Ch02 {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         double yrate = sc.nextDouble();
 7         double amount = sc.nextDouble();
 8         double year = sc.nextDouble();
 9         double month = (amount * (yrate/12))/(1-(1/Math.pow(1+yrate/12,year*12)));
10         double sumamount = month*12*year;
11         System.out.println("月支付金额:"+month+"\n总偿还金额:"+sumamount);
12 }

 

回复数量: 0
暂无评论~~
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!