数组练习题

升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。手机号码如下

public class Exer5 {
        public static void main(String[] args) {
            int[] arr = new int[] { 8, 2, 1, 0, 3 };
            int[] index = new int[] { 2, 0, 3, 1, 4, 0, 1, 3, 2, 3, 3 };
            String tel = "";
            for (int i = 0; i < index.length; i++) {
                tel += arr[index[i]];
            }
            System.out.println("联系方式: " + tel);//18023820100
        }
}

分析以下需求,并用代码实现:
(1)在编程竞赛中,有10位评委为参赛的选手打分,分数分别为:5,4,6,8,9,0,1,2,7,3
(2)求选手的最后得分(去掉一个最高分和一个最低分后其余8位评委打分的平均值)

public class Exer6 {
    public static void main(String[] args) {
        //定义并赋值数组
        int[] arr = new int[]{5,4,6,8,9,0,1,2,7,3};
        //定义一个最大值和一个最小值,赋值为数组的第一个值
        int max = arr[0];
        int min = arr[0];
        int num = 0;
        for (int i = 0; i < arr.length; i++) {
            num += arr[i];
            //与数组内的值相比较
            if(max < arr[i]) {
                max = arr[i];
            }
            if(min > arr[i]){
                min = arr[i];
            }
        }
        System.out.println("总分为:" + num);
        System.out.println("评委的最大值为:" + max);
        System.out.println("评委的最小值为: " + min);
        System.out.println("去掉一个最大值和一个最小值平均数为:" + num / 8 );

    }
}

已知:一年12个月每个月的总天数是:{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31},从键盘输入年,
月,日后,计算这一天是这一年的第几天。
提示:考虑闰年

import java.util.Scanner;

public class Exer7 {
    public static void main(String[] args) {
        int[] arr = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        Scanner scan = new Scanner(System.in);
        //输入年月日
        System.out.println("请你输入一个年份:" );
        int year = scan.nextInt();
        System.out.println("请你输入一个月份:");
        int month = scan.nextInt();
        System.out.println("请你输入一个日期:");
        int day = scan.nextInt();

        int days = day;
        for (int i = 1; i < month ; i++) {
              days += arr[i - 1];
        }
        if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
            if(month > 2){
                days++;
            }
        }
        System.out.println(days);
    }
}

用一个数组,保存星期一到星期天的7个英语单词,从键盘输入1-7,显示对应的单词

import java.util.Scanner;

public class Exer8 {
    public static void main(String[] args) {
        String[] arr = new String[]{"YI","ER","SAN","SI","WU","LIU","QI"};
        Scanner scan = new Scanner(System.in);
        System.out.println("输入1-7其中一个数字:");
        int num = scan.nextInt();


        System.out.println(arr[num - 1]);
    }
}

假设张三从1990年1月1日开始执行三天打鱼两天晒网,5天一个周期,风雨无阻,那么李四想要找张三
玩,需要从键盘输入年,月,日后,判断这一天张三是在打鱼还是晒网。
已知:一年12个月每个月的总天数是:{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31}
提示:考虑闰年

import java.util.Scanner;

public class Exer9 {
    public static void main(String[] args) {
        int[] arr = new int[]{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        Scanner scan = new Scanner(System.in);
        //输入年月日
        System.out.println("请你输入一个年份:" );
        int year = scan.nextInt();
        System.out.println("请你输入一个月份:");
        int month = scan.nextInt();
        System.out.println("请你输入一个日期:");
        int day = scan.nextInt();

        int days = day;
        for(int i =1990;i < year;i++){
            if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
                days +=366;
            }else{
                days +=365;
            }
        }
        for(int i = 1;i < month;i++){
            days += arr[i - 1];
            if(i == 2){
                if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
                    days++;
                }
            }
        }
        System.out.println(days);
        //自己的方法
        /*int days = day;
        for (int i = 1; i < month ; i++) {
            days += arr[i - 1];
        }

        if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
            if(month > 2){
                days++;
            }
        }
        int year1 = year - 1990;
        if(year % 4 == 0 && year % 100 != 0 || year % 400 ==0){
            days = days + (366*year1);
        }else{
            days  = days + (365*year1);
        }

        System.out.println(days);*/

        if(days % 5 == 1 || days % 5 == 2 || days % 5 == 3 ){
            System.out.println("在" + year + "年" + month + "月" + day + "日正在打鱼");
        }else{
            System.out.println("在" + year + "年" + month + "月" + day + "日正在晒网");
        }
    }
}

1、从键盘输入本组学员人数
2、声明两个数组,一个存储本组学员的姓名,一个存储本组学员的成绩
3、从键盘输入每一个人的姓名和成绩,分别存到两个数组中
4、找出最高分和最低分的学员的姓名

import java.util.Scanner;

public class Exer11 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("学员人数为");
        int i = scan.nextInt();

        String[] arrName = new String[i];
        double[] arrGrade = new double[i];

        for (int j = 0; j < arrName.length; j++) {
            System.out.println("请输入学生的姓名:");
            arrName[j] = scan.next();
            System.out.println("请输入学生的成绩");
            arrGrade[j] = scan.nextDouble();
        }

        /* 自己做错误的
        double maxGrade = arrGrade[0];
        double minGrade = arrGrade[0];
        for (int j = 0; j < arrGrade.length; j++) {
            if(minGrade >= arrGrade[j]){
                double temp1 = arrGrade[j];
                arrGrade[j] = minGrade;
                minGrade = temp1;
                System.out.println("最低分为:" + minGrade);
                System.out.println("最低分的获得者是:" + arrName[j]);
            }
            if(maxGrade < arrGrade[j]){
                double temp = arrGrade[j];
                arrGrade[j] = maxGrade;
                maxGrade = temp;
                System.out.println("最高分为:" + maxGrade);
                System.out.println("最高分的获得者是:" + arrName[j]);
            }
        }*/
        int maxFlag = 0;
        int minFlag = 0;

        for (int j = 0; j < arrGrade.length ; j++) {
            if(arrGrade[j] > arrGrade[maxFlag]){
                maxFlag = j;
            }
            if(arrGrade[j] < arrGrade[minFlag]){
                minFlag = j;
            }

        }
        System.out.println("最高分为:" + arrGrade[maxFlag]);
        System.out.println("最高分的获得者为:" + arrName[maxFlag]);
        System.out.println("最低分为:" + arrGrade[minFlag]);
        System.out.println("最低分的获得者为:" + arrName[minFlag]);
    }
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值