开始学Java之17 练习5

跳过了一堆

没啥新知识,直接上练习

说明:这些程序中的每一个都从键盘调用定序数据。 (当然,您必须读入字符数据,并使用包装类Integer将其转换为int。)一旦读入整数,就可以对其进行双精度算术。 只要确保您不需要时,算术表达式就不会偶然调用整数数学。

练习1 Area of a Circle

编写一个程序,根据半径计算圆的面积。 半径将是从键盘读取的整数。 用户对话框如下所示:
Input the radius: 3
The radius is: 3 The area is: 28.274333882308138
您将需要使用通过Math.PI获得的常数PI。

1
2
3
4
5
6
7
8
9
10
11
import java.util.Scanner;
public class Alittlebear{
public static void main (String[] args){
System.out.println("Input the radius:");
double radius = new Scanner(System.in).nextDouble();

double area = Math.PI * radius * radius;

System.out.printf("The radius is: %f %nThe area is: %.6f ", radius, area);
}
}

顺便学了一下printf,好像跟String.format输出上差不多,但是String.format是可以储存的,printf后面不能….(https://www.cnblogs.com/nuoyanli/p/11740152.html)

练习2 Cents to Dollars

编写一个程序, 该程序将写出美元和美分的数量,如下所示:

Input the cents:
324
That is 3 dollars and 24 cents.

(对于此程序,您将使用整数算术,并且需要避免浮点算术。如果不确定如何继续操作,请复查整数余数运算符%。)

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Scanner;
public class Alittlebear{
public static void main (String[] args){
System.out.println("Input the cents:");
int cents = new Scanner (System.in).nextInt();

int dollars = cents / 100;
cents %= 100;

System.out.println(String.format("That is %d dollars and %d cents.", dollars, cents));
}
}

另外这次是用VS Code敲的代码,报了个错

Resource leak: ‘‘ is never closed

查了一下:https://blog.csdn.net/homedjy/article/details/8699053

改了一下不报错了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
public class Alittlebear{
public static void main (String[] args){
Scanner scan = new Scanner (System.in);
System.out.println("Input the cents:");
int cents = scan.nextInt();
scan.close();

int dollars = cents / 100;
cents %= 100;

System.out.println(String.format("That is %d dollars and %d cents.", dollars, cents));
}
}

用了scan,因为不知道怎么直接close Scanner…

练习3 Correct Change

  • 163可以给1美元,剩下63美分。
  • 63可以给两个25美分,剩下13美分
  • 13美分可以找1个10美分,剩下3美分
  • 不需要5美分硬币
  • 剩下三分钱。

您的找零是: 1 dollar, two quarters, one dime, and three cents.。

编写一个程序,读取由于用户造成的零钱(以美分为单位),并写出她应得的dollars, quarters, dimes, nickels, and pennies。 该程序中的所有变量和所有数学运算都是整数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.Scanner;
public class Alittlebear{
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("Input the cents:");
int cents = scan.nextInt();
scan.close();

int dollars=cents/100, quarters=cents%100/25,
dimes=cents%25/10, nickels=cents%25%10/5, pennies=cents%5;

/*
int dollars=cents/100, quarters=cents%100/25,
dimes=cents%100%25/10, nickels=cents%100%25%10/5, pennies=cents%100%25%10%5;
*/

System.out.println("Your change is :\n\n" +
dollars + ((dollars>1)?" dollars\n":" dollar\n") +
quarters + ((quarters>1)?" quarters\n":" quarter\n") +
dimes + ((dimes>1)?" dimes\n":" dime\n") +
nickels + ((nickels>1)?" nickels\n":" nickel\n") +
pennies + ((pennies>1)?" pennies":" pennie"));
}
}

这次用了\n换行符,还弄了一堆判断要不要加复数的代码(没事闲的(lll¬ω¬)…)就是不知道如何判断变量为0就不输出..

大佬指点代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;

public class Natsumi{
public static void main (String[] args){

Scanner scan = new Scanner(System.in);
System.out.println("Input the cents:");
int cents = scan.nextInt();
scan.close();

String[] t = {"dollar", "quarter", "dimes", "nickel", "pennie"};
int[] n = {cents/100, cents%100/25, cents%25/10, cents%25%10/5, cents%5};

System.out.println("Your change is :\n");

for(int i=0; i < n.length; ++i)
if(n[i] > 0) System.out.println(n[i] + " " + t[i] + ( n[i] > 1 ? "s" : "" ));

}
}

练习4 Ohm’s Law

欧姆定律将电气设备(如加热器)的电阻与流经该设备的电流以及施加在其上的电压相关联。 定律是:I = V/R

在此,V是电压(以伏特为单位),I是电流(以伏特为单位)R是电阻(以欧姆为单位)。编写一个程序,询问用户设备的电压和电阻。 然后,程序将写出流经它的电流。 使用浮点数学。 由于V和R是整数(从用户输入转换而来),因此必须使用技巧进行浮点除法。 将公式更改为此:

I = (V + 0.0)/R

括号内的计算先完成。 因此,V + 0.0首先完成,并且由于0.0是浮点数,因此将是结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
public class Alittlebear{
public static void main (String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("Input the voltage in volts:");
int voltage = scan.nextInt();
System.out.println("Input the resistance in ohms:");
int resistance = scan.nextInt();
scan.close();

double current = (voltage + 0.0) / resistance;
System.out.printf("Current in amps: %.5f", current);
}
}
评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...