学习了流程控制语句,我们来试试例题!
第一题
步骤:
1.定义三个变量,提示用户输入abc三个参数
2.计算delt=b*b-4*a*c
3.判断delt的值
import java.util.Scanner; class Demo03_01{ public static void main(String[] args){ Scanner scanner=new Scanner(System.in);//1 System.out.print("请输入a,b,c:"); double a=scanner.nextDouble(); double b=scanner.nextDouble(); double c=scanner.nextDouble(); double delt=b*b-4*a*c;//2 if(delt>0){//3 double r1=(-b+Math.sqrt(delt))/(2*a); double r2=(-b-Math.sqrt(delt))/(2*a); System.out.printf("r1=%.2f,r2=%.2f",r1,r2); }else if(delt==0){ double r=(-b-Math.sqrt(delt))/(2*a); System.out.printf("r=%.2f",r); }else{ System.out.println("无实数解!"); } } }
运行结果:
第二题
步骤:(1)定义a,b,c,d,e,f变量,提示用户输入
(2)定义一个变量m用来存储ad-bc的值
(3)判断m的值是否为0并输出
代码展示:
import java.util.Scanner;
class Demo03_02{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a,b,c,d,e,f:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double d = scanner.nextDouble();
double e = scanner.nextDouble();
double f = scanner.nextDouble();
double m = a*d-b*c;
if(m==0){
System.out.println("The equation has no solution");
}else{
double x=(e*d-b*f)/(a*d-b*c);
double y=(a*f-e*c)/(a*d-b*c);
System.out.println("x is "+x+" and y is "+y);
}
}
}
结果展示:
第三题
步骤:
1.提示用户输入代表今天日期的数字
2.提示用户输入一个今天之后的天数,作为代表将来某天的数字
3.打印未来的几天是周几
代码展示:
结果显示:
第四题
分析:本题主要是判断数字的顺序,其实,也可以单独比较百位和个位,就等于跳过了十位数字,如果是四位数字,就不好比较了
拆分数字
12345 54321
12345%10=5 12345/10=1234 5*10000+4*1000+3*100+2*10+1
1234%10=4 1234/10=123 (5*1000+4*100+3*10+2)*10+1
123%10=3 123/10=12 ((5*100+4*10+3)*10+2)*10+1
12%10=2 12/10=1 (((5*10+4)*10+3)*10+2)*10+1
1%10=1 1/10=0 ((((0*10+5)*10+4)*10+3)*10+2)*10+1
sum=0
sum=sum*10+5; //5
sum=sum*10+4; //54
sum=sum*10+3; //543
sum=sum*10+2; //5432
sum=sum*10+1; //54321
所以,只要正着的顺序和反着的顺序相同即可
代码展示:
结果展示:
第五题
解析:
步骤:
1.提示用户输入一个数字并提示,数字为0-2的整数
2.计算机随机产生一个数字
3.将两个数字进行对比,分输赢
三种情况:
平局 com==usr
用户赢 usr=0 com=2 | usr=1 com=0 | usr=2 com=1
用户输 剩下的都是用户输
本题需要用到的随机数方法:
(1)Math.random() [0,1.0)*3 -> [0,3.0)->(int)[0,3.0) 这个区间是左闭右开的,本题用到0-2的数字,只能*3
(2)Random nextInt(n)
代码展示:
结果展示:
第六题
步骤:
1.提示用户输入点的坐标
2.根据公式计算点到圆心之间的距离
3.判断距离和半径之间的关系
三种情况:距离>半径 点在圆外
距离==半径 点在圆上
距离<半径 点在圆内
代码展示:
结果展示:
第七题
步骤:
* 这是一道几何方面的问题:点是否在三角形内?
* 假设一个直角三角形放在一个平面上。直角点在(0, 0)处,
其它两个点分别在(200, 0)和(0, 100)处。
* 提示用户输入一个点x坐标和y坐标:
* 判断这个点是否在该三角形内。
代码展示:
import java.util.Scanner;
class Demo03_09{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个坐标:");//提示用户输入一个点的坐标
double x=scanner.nextDouble();
double y=scanner.nextDouble();
if(x>=0&&x<=200&&y<=-0.5*x+100){//先大致判断一下坐标的范围,再精确的判断坐标的范围
System.out.println("点再三角形内");
}else{
System.out.println("点再三角形外");
}
}
}
结果展示:
今天的题有点多,但是都是很简单的,剩下的题,明天整理完会发上来!!!