您的位置:首页 > 其它

0109作业练习二维数组

2016-01-09 21:18 363 查看
//创建二维数组 arr[][],将二维数组中所有元素的和输出
int [][]arr= {{7,8,9},{44,22,33},{41,25,68,78}};//建立arr的二维数组,初始化大小并赋值
int sum=0;                  //声明变量sum
for(int[] n:arr){                //用foreach遍历数组
for(int  m:n){       //再定义一个m ,将arr中的值通过n赋值给m,不可以直接输出n
System.out.print(m+" ");//通过遍历输出数组中的数
sum += m;             //sun求和,将数组中的数全部相加
}
System.out.println();
}
System.out.println("所有元素的和="+sum);    //输出结果


//    对比       用for循环遍历
for(int n=0;n<arr.length;n++){
for(int m=0;m<arr
.length;m++){       //
一定要写,将n的长度定义给m,不然不规则的二维数组输出的是几乘几的数组,数字会丢失
System.out.print(arr
[m]+" ");
}
System.out.println();
}




//对矩阵进行转置运算
public class ArrayRowColumnSwap {      //创建ArryRowColumnSwap类, 不建同名的也可以

public static void main(String[] args) {

int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};        //创建二维数组
System.out.println("转置前的的矩阵是:");
printArray(arr);                             //   调用打印矩阵的静态方法 , 输出二维数组
int arr2[][]=new int[arr.length][arr.length];
for (int i=0;i<arr.length;i++){               //调整数组行列数据
for(int j=0;j<arr[i].length;j++){
arr2[j][i]=arr[i][j];
}
}
System.out.println("转置后的矩阵是:");
printArray(arr2);                          //再次直接调用打印矩阵的静态方法,输出二维数组
}
private static void printArray(int[][]arr){        //定义一个打印矩阵的静态方法
for (int i=0;i<arr.length;i++){                  //遍历数组
for(int j=0;j<arr.length;j++){
System.out.print(arr[i][j]+" ");           //输出数组元素
}
System.out.println();
}


//通过遍历数组 对矩阵进行转置运算
int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};        //创建二维数组
System.out.println("转置前的的矩阵是:");
for(int[] n:arr){              //遍历数组
for(int m:n){
System.out.print(m+"\t");  //输出数组
}
System.out.println();
}
int arr2[][]=new int[arr.length][arr.length];
for (int i=0;i<arr.length;i++){               //调整数组行列数据
for(int j=0;j<arr[i].length;j++){
arr2[j][i]=arr[i][j];

}
}
System.out.println("转置后的矩阵是:");
for(int[] h:arr2){              //再次遍历数组
for(int hh:h)
System.out.print(hh+"\t");
System.out.println();
}




//输出九宫格
int arr[][]=new int[3][3];     //创建一个三阶方阵
int a=2;                       //第3行的行下标
int b=3/2;                    //第2列的列下标
for(int i=1;i<=9;i++){          //给数组赋值
arr[a++][b++]=i;
if(i%3==0){                //如果i是3的倍数
a=a-2;
b=b-1;
}else{                   //如果i不是3的倍数
a=a%3;
b=b%3;
}
}
System.out.println("输出九宫格:");
for(int i=0;i<3;i++){             //遍历输出九宫格
for(int j=0;j<3;j++){
System.out.print(arr[i][j]+" ");
}
System.out.print("\n");
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: