第一阶段第十天(数组排序(二维),双色球,杨辉三角)

1、对一维数组{12,21,9,45,32,23}进行冒泡排序
package day10;
import java.util.Arrays;
 
/**
 * 
 * 对一维数组{12,21,9,45,32,23}进行冒泡排序
 *
 */
public class Demo10_1 {
        /**
         * 入口文件
         * @param args
         */
        public static void main(String[] args) {
                int [] arrs={12,21,9,45,32,23};//定义数组
                //调用冒泡排序的函数来实现冒泡排序
                int [] ars=maoPao(arrs);
                System.out.println(Arrays.toString(ars));
        }
        /**
         * 实现冒泡排序
         * @param arrs
         * @return
         */
        public static int [] maoPao(int [] arrs){
                //外循环
                for(int i=0;i<arrs.length-1;i++){
                        //内循环
                        for(int j=0;j<arrs.length-i-1;j++){
                                if (arrs[j]>arrs[j+1]){//前面数据大于后面数据,则交换数据
                                        int temp=arrs[j];//创建一个临时变量
                                        arrs[j]=arrs[j+1];
                                        arrs[j+1]=temp;
                                }
                                 
                        }
                }
                return arrs;
        }
}


2、模式实现双色球抽奖游戏
package day10;
 
import java.util.Arrays;
 
/**
 * 模式实现双色球抽奖游戏
 */
public class Demo10_2 {
        public static void main(String[] args) {
                int arr[]=new int[7];
        //第一红色球,33选6  
        //第二蓝色球  16选1  红色球和蓝色球可以一样的,互不干扰
                int blue=(int)(Math.random()*16)+1;
                arr[6]=blue;
         
                int red[]=new int[6];
                //外层循环是控制给红色球数组进行赋值用的
                for(int i=0;i<red.length;i++){
                        int value=(int)(Math.random()*33)+1;//1--33的随机数
                        boolean flag=true;
                        //用标记来判断是否将生成的随机数存入数组                        
                        //内层循环  为了判断去重
                        //内层循环遍历已经生成的随机数,i
                        for(int k=0;k<i;k++){
                                if (value==arr[k]) {
                                        flag=false;//重复了,不能存
                                        i--;
                                        break;//假设已经知道重复了,那么不需要往后面进行比较了,直接break
                                }
                        }        
                        if (flag==true) {
                                arr[i]=value;
                        }else {
                                System.out.println("生成的随机数重复了,不能存入数组,重复是:"+value);
                                System.out.println("是第:"+i+"次重复了");
                        }
                 
                }
                System.out.println(Arrays.toString(arr));
        }
}


3、遍历二维数组 {{12,11,9},{67,12},{33,35,39,40}},并输出打印二维数组中元素的个数。
package day10;
 
import java.util.Arrays;
 
/**
 * 
 * 遍历二维数组 {{12,11,9},{67,12},{33,35,39,40}},
 * 并输出打印二维数组中元素的个数。
 *
 */
public class Demo10_3 {
        /**
         * 入口文件
         * @param args
         */
        public static void main(String[] args) {
                int [][] arrs={{12,11,9},{67,12},{33,35,39,40}};
                query(arrs);
                System.out.println("数组中元素的个数"+getCount(arrs));
        }
        /**
         * 实现遍历二维数组
         * @param arrs
         */
        public static void query(int [][] arrs){
                //遍历有几个一维数组
                for(int i=0;i<arrs.length;i++){
                        System.out.println("此二维数组中有一维数组:"+Arrays.toString(arrs[i]));
                        for(int j=0;j<arrs[i].length;j++){
                                System.out.println("元素信息为"+arrs[i][j]);
                        }
                }
        }
        /**
         * 实现获取二维数组中元素的个数
         * @param arrs
         * @return
         */
        public static int  getCount(int [][] arrs){
                int count=0;//定义一个变量存个数
                //遍历一维数组
                for(int i=0;i<arrs.length;i++){
                        //遍历一维数组中的元素信息
                        for(int j=0;j<arrs[i].length;j++){
                                count++;
                        }
                }
                return count;
        }
}


4、求3题中二维数组各数字的和信息
package day10;
/**
 * 
 * 求二维数组 {{12,11,9},{67,12},{33,35,39,40}}各数字的和信息
 *
 */
public class Demo10_4 {
        /**
         * 入口文件
         * @param args
         */
        public static void main(String[] args) {
                int [][] arrs= {{12,11,9},{67,12},{33,35,39,40}};//定义二维数组
                int sum=getSum(arrs);
                System.out.println("各数字的和为"+sum);
        }
        /**
         * 实现数组中个数字求和
         * @param arrs
         * @return
         */
        public static int getSum(int [][] arrs){
                int sum=0;//定义变量sum存和信息
                //遍历一维数组
                for(int i=0;i<arrs.length;i++){
                        //遍历数组中的元素信息
                        for(int j=0;j<arrs[i].length;j++){
                                sum+=arrs[i][j];//依次求和
                        }
                }
                return sum;
        }
}


5.
package day10;
 
 
/**
 * 
 * 已知一个二维数组A 表示一个矩阵,求AT。
* 其中,AT 表示矩阵的转置。矩阵转置的含义:表示把一个矩阵行列互换。
 */
public class Demo10_5 {
    public static void main(String[] args) {
        int [][] arrs={{1,2,3},{4,5,6}};
        zhuanZhi(arrs);
    }
    public static void zhuanZhi(int [][] arrs){
        int arr[][] =new int [arrs[0].length][arrs.length];
        for(int i=0;i<arrs.length;i++){
            for(int j=0;j<arrs[i].length;j++){
                arr[j][i]=arrs[i][j];
                 
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}


6. *给定一个数组,把这个数组中所有元素顺序进行颠倒。
  1,2,3,4,5


  5,4,3,2,1
package day10;
 
import java.util.Arrays;
 
/**
 * 
 * *给定一个数组,把这个数组中所有元素顺序进行颠倒。
 * 1,2,3,4,5
 * 5,4,3,2,1
 *
 */
public class Demo10_7 {
        public static void main(String[] args) {
                int [] arrs={1,2,3,4,5};
                 
                System.out.println(Arrays.toString(paiXu(arrs)));
        }
        public static int [] paiXu(int [] arrs){
                for(int i=0;i<arrs.length;i++){
                        for(int j=0;j<arrs.length-i-1;j++){
                                if(arrs[j]<arrs[j+1]){
                                        int temp=arrs[j];
                                        arrs[j]=arrs[j+1];
                                        arrs[j+1]=temp;
                                }
                        }
                }
                return arrs;
        }
}


7.
package day10;
 
import java.util.Scanner;
 
/**
 * 7、* 输出杨辉三角(选做)
*杨辉三角如下:
*1
*1 1
*1 2 1
*1 3 3 1
*1 4 6 4 1
*……
*杨辉三角的特点:
*1. 第i 行有i 个元素
*2. 每一行的第一个元素和最后一个元素都为1
*3. 除了1 之外,每个元素的值,都等于上一行同位置的元素以及前一个元素的和。
*例如:
*1 4 6 4 1 的下一行
*1 a1 a2 a3 a4 1
*a1 = 4 + 1 = 5
*a2 = 6 + 4 = 10
*a3 = 4 + 6 = 10
*a4 = 1 + 4 = 5
*依次类推。
*要求:读入一个整数n,输出杨辉三角的前n 行
 */
public class Demo10_6 {
 
        public static void main(String[] args){
                Scanner s=new Scanner(System.in);
            System.out.println("请输入整数n:");
            int n=s.nextInt();
            sanJiao(n);
        }
        public static void sanJiao(int n){
               int[][] a=new int[n][n];
               for (int i=0,j=0;i<n;i++,j++){           
                    a[i][0]=1;
                    a[i][j]=1;                    
                    if(j!=0)
                    System.out.print(a[i][0]+"\t");
                    for (int k=1;k<j ;k++ ){
                         a[i][k]=a[i-1][k-1]+a[i-1][k];
                         System.out.print(a[i][k]+"\t");
                    }
                         System.out.println(a[i][j]);
                    }
        }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值