实验四 分支结构

 第一题:寻找三数的最大值和最小值

【问题描述】

编写一个程序,用户输入3整数,试找出其中的最大数和最小数

【样例输入】

1 2 78

【样例输出】

78 1

 思路:

较简单,思路见注释,此处略

    public static void main(String[] args) {
        //实例化Scanner对象用来接收用户数据
        Scanner nc=new Scanner(System.in);
        //接受三个用户传入的数据
        int x=nc.nextInt();
        int y=nc.nextInt();
        int z=nc.nextInt();
        
        
        //用max来接受x和y中的最大值,如果x>y将x赋值给max否则y赋值给max
        int max=x>y?x:y;
        
        //之后再用max和z进行比较,如果max>z值不变,否则将z赋值给max
        max=max>z?max:z;
        System.out.println(max);
        //最小值同理,不写了

    }

第二题:判断闰年平年 

【问题描述】判断用户输入的年份是否为闰年。

闰年要求:如果年份可以被 4 整除而不能被 100 整除, 或者可以被 400 整除, 那么该年就是闰年。

提示:用户输入年份只为(1900-2200年)

 思路:

1.创建Scnner实例化对象接受用户数据

2.判断用户输入数据是否为整形,为整形则程序继续,否则返回error程序结束

3.判断用户输入的整形数据是否在1900到2200之间

4.根据闰年条件,判断输入的年份是否为闰年

 

 public static void main(String[] args) {
        //接受用户数据,判断是否为整形,不是返回error
        Scanner nc=new Scanner(System.in);
        if(nc.hasNextInt()){
        int a=nc.nextInt();
        //判断输入的年份是否在1900-2200内,不在返回error
        if(a>=1900&&a<=2200){
            //对合法数据,利用公式判断闰年平年
          if(a%4==0&&a%100!=0){
              System.out.println(a+" is runnian");
          } else if (a%400==0) {
              System.out.println(a+" is runnian");

          }else {
              System.out.println(a+" is pingnian");
          }
      }else {
            System.out.println("error");
        }
    }
    else {
            System.out.println("error");
        }
    }

 

第三题素数:

【问题描述】

用户输入数字n

程序判断n是否为素数

【样例输入】

5
【样例输出】

5 is prime

【样例输入】

4
【样例输出】

4 is not prime

 

 思路:

见注释

    public static void main(String[] args) {

        //接受用户数据
        Scanner nc = new Scanner(System.in);
        int n = nc.nextInt();
        //判断2---n-1内是否存在值可以被n整除,存在则n不为素数
        for (int i = 2; i <n; i++) {

            if(n%i==0){
                System.out.println(n+" is not prime");
                //找到任意一个数字可以被n整除,则n必不是素数,跳出循环
                break;
            }else if(i==n-1)//当i成功遍历到n-1时,且n%(n-1)!=0时,执行该语句。
                //此时代表2---n-1内无任何数可以被n整除,所以n为素数
                //有些同学会在这里直接用else,经典的错误标准的零分,分析下
                //例如数字21并不是一个质数,如果使用else的情况下,21%2!=0,所以会直接执行语句 21 is prime
                //总结,直接使用else,只要当n%i不等零的时候便会输出n is prime;
            {
                System.out.println(n+" is prime");
            }

        }
        //特殊情况,把2单拉出来,聪明的小伙伴想想为什么
        if(n==2){
            System.out.println(n+" is prime");
        }
    }

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值