1、学习了double类型、printf格式化输出、Math的pow()、sqrl()、abs()等用法。
2、发现无法用hasNext()和hasNextLine()返回false来结束循环。用按行读入,并加上str.equals("")判断来跳出循环。不按行读没好办法,直接CTRL+Z退出吧。
3、判断字符串是否相等,不能用==,==是判断变量的地址是否相等。要用str1.equals(str2),其他一些类型变量同理。
2000.java
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(true){
String str=sc.nextLine();
if(str.equals("")) break;
char a = str.charAt(0);
char b = str.charAt(1);
char c = str.charAt(2);
char tmp;
if(a>b){
tmp=b;
b=a;
a=tmp;
}
if(b>c){
tmp=c;
c=b;
b=tmp;
}
if(a>b){
tmp=b;
b=a;
a=tmp;
}
System.out.println(a+" "+b+" "+c);
}
}
}
2001.java
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextDouble())
{
double x1=sc.nextDouble();
double y1=sc.nextDouble();
double x2=sc.nextDouble();
double y2=sc.nextDouble();
System.out.printf("%.2f", Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2, 2)));
System.out.println();
}
sc.close();
}
}
2002.java
import java.util.Scanner;
class Main{
public static void main(String[] args){
final double PI = 3.1415927;
Scanner sc = new Scanner(System.in);
while(sc.hasNextDouble())
{
double r=sc.nextDouble();
System.out.printf("%.3f", 4.0/3.0*PI*Math.pow(r,3));
System.out.println();
}
sc.close();
}
}
2003.java
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextDouble()){
double num = sc.nextDouble();
System.out.printf("%.2f", Math.abs(num));
System.out.println();
}
}
}