选择结构习题总结

生活中我们会面临许许多多的选择,有些选择是我们必须要面对的,正如我们在编程里面一样,也要做选择,哈哈哈哈!下面我就来说一下一些关于选择结构的习题吧!

思路分析:这道题是求一元二次方程的根 ,题目中也已经给出了计算方法,我们只需按照流程来就行,具体来看。

第一步:因为题目中有a,b,c,所以我们先创建三个变量a,b,c,然后提示用户输入a,b,c;

第二步:因为题目本身要求就是一元二次方程,所以这里我们就不用考虑分母(我把分母判断的那一种情况给注释掉了)。创建一个变量存放判别式的值,然后用if语句判断判别式和0的大小情况就可以了;

第三步:编写代码。

import java.util.*;
public class Demo03_01{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a,b,c: ");
        double a = scanner.nextDouble();
        double b = scanner.nextDouble();
        double c = scanner.nextDouble();
        /*if(a == 0){
            if(b == 0){
                System.out.println("此方程无意义");
            }else{
                double x = -c / b;
                System.out.println("The equation has one root " + x);
            }
        }*/ 
        double m = b * b - 4 * a * c;//定义一个变量存放根的判别式
        if(m > 0){
            double x1 = (-b + Math.pow(m,0.5)) / (2 * a);
            double x2 = (-b - Math.pow(m,0.5)) / (2 * a);
            System.out.println("The equation has two roots " + x1 + " and " + x2);
        }else if(m == 0){
            double x = (-b + Math.pow(m,0.5)) / (2 * a);
            System.out.println("The equation has one root " + x);
        }else{
            System.out.println("The equation has no real roots");
        }
    }
}

运行结果:

Enter a,b,c: 1.0 3 1 
The equation has two roots -0.3819660112501051 and -2.618033988749895

Enter a,b,c: 1 2.0 1 
The equation has one root -1.0

Enter a,b,c: 1 2 3
The equation has no real roots

 

思路分析:这道题是利用克莱姆法则解线性方程组,具体计算方法题目中也给出了,具体来看。

第一步:创建a,b,c,d,e,f,提示用户输入a,b,c,d,e,f;

第二步:创建一个变量存放分母ad-bc的值,然后判断分母是否为0,再进行计算;

第三步:编写代码。

import java.util.*;
public 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) / m;
            double y = (a * f - e * c) / m;
            System.out.println("x is " + x + " and y is " + y);
        }
    }
}

运行结果:

Enter a, b, c, d, e, f: 9.0 4.0 3.0 -5.0 -6.0 -21.0
x is -2.0 and y is 3.0

Enter a, b, c, d, e, f: 1.0 2.0 2.0 4.0 4.0 5.0
The equation has no solution

 

思路分析:这道题提示用户输入代表今天日期的数字,然后再输入一个今天之后的天数,最后显示出来这一天是星期几,具体来看吧。

第一步:创建两个变量,一个表示用户输入“今天日期代表的数字”,另一个存放用户输入的“今天之后的天数”;

第二步:再创建一个变量表示将来的那一天是星期几;

第三步:创建两个字符串具体来表示今天和将来的那一天具体是星期几;

第四步:用if判断来表示今天和将来的那一天所有的情况,,具体判断见代码;

第五步:编写代码。

import java.util.*;
public class Demo03_03{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        //输入今天的天数
        System.out.print("Enter today's day:");
        int today = scanner.nextInt();
        //输入用户想要知道的后面的天数
        System.out.print("Enter the number of days elapsed since today:");
        int future = scanner.nextInt();
        int futureDay = (today + future) % 7;//今天的天数+后面多少天的天数之和对7取余就是那一天的星期
        //将星期用字符串表示
        String todayStr = "";//今天的星期
        String futureDayStr = "";//未来的星期
        //今天的星期,有7种情况
        if(today==0){
            todayStr = "Sunday";
        }else if(today==1){
            todayStr = "Monday";
        }else if(today==2){
            todayStr = "Tuesday";
        }else if(today==3){
            todayStr = "Wednesday";
        }else if(today==4){
            todayStr = "Thursday";
        }else if(today==5){
            todayStr = "Friday";
        }else if(today==6){
            todayStr = "Saturday";
        }
        //未来的星期,也是7种情况
        if(futureDay==0){
            futureDayStr = "Sunday";
        }else if(futureDay==1){
            futureDayStr = "Monday";
        }else if(futureDay==2){
            futureDayStr = "Tuesday";
        }else if(futureDay==3){
            futureDayStr = "Wednesday";
        }else if(futureDay==4){
            futureDayStr = "Thursday";
        }else if(futureDay==5){
            futureDayStr = "Friday";
        }else if(futureDay==6){
            futureDayStr = "Saturday";
        }
        System.out.println("today is " + todayStr +  " and " + " the future day is " + futureDayStr);
    }
}

运行结果:

Enter today's day:1
Enter the number of days elapsed since today:3
today is Monday and  the future day is Thursday

Enter today's day:0
Enter the number of days elapsed since today:31
today is Sunday and  the future day is Wednesday

 

思路分析:针对这道题来说,很简单,只需判断个位数字和百位数字是否相等就可以了,这种方法我在代码中注释掉了。我还写了另外一种方法,可以判断Long类型长度的数字,用到了循环,这里不多强调,后面循环再说。

第一步:创建一个变量num存放用户输入的数字;

第二步:用num%10分出个位,num / 100分出百位,相比较就行。

第三步:编写代码。

import java.util.*;
public class Demo03_04{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("Enter a integer: ");
		long num = scanner.nextLong();
        long temp1 = num;
        long temp2 = num;
        long sum = 0;
        /*
        if((num%10)==(num/100)){
            System.out.println(num + " is a palindrome.");
        }else{
            System.out.println(num + " is not a palindrome.");
        }
        */
        int count = 0;
        while(num != 0){       
            num /= 10;
            count++;
        }
        for(int i = 1;i <= count;i++){
            sum = sum * 10 + temp1 % 10;
            temp1=temp1/10;
        }      
        if(sum==temp2){
            System.out.println(temp2 + " is a palindrome.");
        }else{
            System.out.println(temp2 + " is not a palindrome.");
        }  
    }
}

运行结果: 

Enter a integer: 121
121 is a palindrome.

Enter a integer: 123
123 is not a palindrome.
发布了6 篇原创文章 · 获赞 11 · 访问量 2475

猜你喜欢

转载自blog.csdn.net/Agonyq/article/details/104206950