1、对一维数组{12,21,9,45,32,23}进行冒泡排序
2、模式实现双色球抽奖游戏
3、遍历二维数组 {{12,11,9},{67,12},{33,35,39,40}},并输出打印二维数组中元素的个数。
4、求3题中二维数组各数字的和信息
5.
6. *给定一个数组,把这个数组中所有元素顺序进行颠倒。
1,2,3,4,5
5,4,3,2,1
7.
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]);
}
}
}