第七天----------数组

package javaday7;

public class Test {
    /**
     * 1.数组:数组中可以存放一系列数据类型相同的数据。
     *              数组属于引用性的数据类型的变量。
     *         数组的特性:1.数组中的数据类型必须一样
     *                    2.数组的长度必须要在创建的时候就定义好,并且不能修改。
     * 
     *        1.声明数组:
     *                语法:      数据类型 [] 数组名;(推荐)
     *                    或者  数据类型  数组名 [];
     *             注意:数组声明完成以后不能直接使用,因为并没有给他分配相应的内存空间。
     *                   声明完成数组之后数组的初始值为null.
     *           2.分配空间:
     *                 语法:1.数组名=new 数据类型[数组长度];
     *                         注意:中括号中必须要写长度。
     *                       2.数组名=new 数据类型[]{元素,元素,元素,.....};
     *                         注意:中括号中不能写数组长度。
     *                 使用场景:当数组中的元素数量不固定的时候一般使用第一种方式创建数组
     *                          当数组中的元素固定,并且数据量不是特别大的时候可以使用第二种。
     *             注意:如果为数组分配好了内存空间,并没有用赋初值的时候,数组中会有默认值。
     *                    int:默认为0
     *                    double:默认为0.0
     *                       引用型:默认null
     *             3.为数组赋值:
     *                 数组元素:数组中的每一个数据叫做一个数组元素。
     *                 数组下标:数组元素在数据中的位置叫做数组下标,数组下标从0开始。
     *                 数组长度:数组中元素的个数叫做数组长度。
     *                          获取方式:长度=数组名.length;
     *                              数组最大下标=数组长度-1;
     *                 为数组赋值:
     *                     数据类型 [] 数组名={元素,元素,元素,.....};
     *                     注意:数组的声明和赋值必须放在一起不能分开写。
     *                 单独赋值:必须通过数组的下标赋值
     *                     数组名[下标]=值;
     *                 
     *             4.访问数组中的元素:必须通过数组的下标进行访问。
     *                 语法:数据类型  值=数组名[下标];
     *     注意:在使用数组的时候一定要注意,下标不能超过最大下标。
     *            如果访问下标超过最大下标则报错:java.lang.ArrayIndexOutOfBoundsException                        
     * 
     */

    public static void main(String[] args) {
        //申明一个int类型的数组
        int [] arr=null;
        String arr2 [];
        //分配空间
        arr=new int[5];
        //赋值
        arr[0]=4;
        arr[1]=5;
        arr[4]=10;
        
        int el=arr[2];
        System.out.println(el);

        arr2=new String[4]/* {"asdas","wqeqwe","dfgdfg"}*/;
        
        System.out.println(arr2[0]);
        
        
        //声明和分配空间
        double [] arr3=new double[7];
        //获取arr3数组的长度
        int length=arr3.length;
        System.out.println(length);
        
        int arr4 [] = {1,3,5,2,6};
        
        
        
    }
}
作业:

1:输入n个学生的成绩,然后将他们保存在数组中,并找出最大成绩和最小成绩,计算他们的平均成绩。

package Demo2;

 

import java.util.Scanner;

 

public class Demo1 {

  public static void main(String[] args) {

     double temp=0;

     double sum=0;

     int n=5;

     Scanner scanner=new Scanner(System.in);

     double [] a=new double[n];

     for(int i=0;i<a.length;i++){

      

       System.out.println("请输入第"+(i+1)+"个学生的成绩:");

       double r=scanner.nextDouble();

       a[i]=r;

       sum=sum+a[i];

      

     }

     for(int j=0;j<a.length-1;j++){

       for(int k=0;k<a.length-1-j;k++){

         if(a[k]>a[k+1]){

           temp= a[k];

            a[k]=a[k+1];

            a[k+1]=temp;

         }

       }

     }

     double max=a[a.length-1];

     double min=a[0];

     System.err.println("最好成绩为:"+max+"最低成绩为:"+min+"平均成绩为:"+(sum/a.length));

    

  }

 

}

 

2:有一个int数组arr1长度为5,将他的长度扩充为8.

提示:数组长度固定,不能再原来的数组上面扩展,要扩充必须创建一个新的数组,然后将原来数组中的元素复制到新的数组中。

 

 

  1. 给定一个数组arr1 = {1,6,3,9,10,45,100},要求利用程序实现数组的倒序,并且将数组输出出来。arr1倒序数组为arr2 = {100,45,10,9,3,6,1}

package Demo2;

 

public class Demo3 {

  public static void main(String[] args) {

     int [] arr1={1,6,3,9,10,45,100};

     int [] arr2;

     arr2=new int[7];

    

    

     for(int i=0;i<arr1.length;i++){

       arr2[i]= arr1[6-i];

       System.out.print(arr2[i]+" ");

     }

  }

 

}

 

  1. 请输入一组数字,使用冒泡排序从大到小排列输出

package Demo2;

 

import java.util.Scanner;

 

public class Demo4 {

  public static void main(String[] args) {

     int [] a;

     a=new int[5];

     Scanner scanner=new Scanner(System.in);

     for(int i = 0;i<a.length;i++){

       System.out.print("请输入第"+(i+1)+"个数字:");

       int r=scanner.nextInt();

       a[i]=r;

     }

     for(int i=0;i<a.length-1;i++){

       for(int j=0;j<a.length-1-i;j++){

         int temp=0;

         if(a[j]<a[j+1]){

            temp=a[j+1];

            a[j+1]=a[j];

            a[j]=temp;

         }

       }

     }

     for(int i=0;i<a.length;i++){

       System.out.print(a[i]+" ");

     }

  }

 

}

 

 

5.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在   第10次落地时,共经过多少米?第10次反弹多高?

package Demo2;

 

public class Demo5 {

  public static void main(String[] args) {

     //int s1;

     double sum=0;

    

     double [] a;

     a=new double[10];

    

     for(int i=0;i<10;i++){

       if(i==0||i==1){

         a[i]=100;

       }else{

         a[i]=a[i-1]/2;

        

       }

       sum=sum+a[i];

     }

    

     System.err.println("10次落地时,共经过"+sum+"");

     System.out.println("10次反弹高"+a[9]/2+"");

    

  }

 

}

 

 

6.(选做题)

编写一个抽奖的程序

提示1.先定义一个数组保存所有抽奖人员的电话号码。

  1. 然后让用户输入抽奖等级,如果该等级的奖励已经抽完则提示用户。

(一等奖1名,二等奖2名,三等奖3名)

3.使用随机数生成下标,已经抽过的手机号不能重复中奖。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值