JAVA题编程,求解!!!!!!

二维数组打印如下图型
1
5 2
8 6 3
10 9 7 4
1 5 8 10为一列 ,2 6 9为一列 ,3 7为一列,4为一列 我要的是一个空的二维数组,然后把数放进去

第1个回答  2014-10-31
public static void print(){
        int[][] a = new int[][]{
                new int[]{1,5,8,10}, 
                new int[]{2,6,9},
                new int[]{3,7},
                new int[]{4}};
        for(int i=0; i<a.length; i++){
            for(int j=0; j<=a.length-a[i].length;j++){
//                System.out.print(a[j][i-j]+" ");
                System.out.print(a[j][i-j]<10 ? a[j][i-j]+"  " : a[j][i-j]+" ");
            }
            System.out.println();
        }
    }

如果我没理解错题意的话,应该是这样

追问

也不是这样,谢谢了,我做出来了,其实这题的意思就是定义一个4*4的空数组,通过遍历让其有规律的在每一个索引位置放一个数,通过计数器累加,最后形成图的那样,而不是往里面直接放数,你明白么?

追答public static void print(){
        int[][] a = new int[4][];
        for(int i=0; i<a.length; i++){
             a[i] = new int[a.length-i];
        }
        int index =1;
        for(int i=0; i<a.length; i++){
            for(int j=0; j<a[i].length;j++){
                a[j][i] = index++;
            }
        }
         System.out.println(Arrays.toString(a[0]));
         System.out.println(Arrays.toString(a[1]));
         System.out.println(Arrays.toString(a[2]));
         System.out.println(Arrays.toString(a[3]));
    }

你说的是这个效果吧....  题目有歧义啊

看看,花了这么多人的时间做了无用功。

追问

你这个也不对,不好意思耽误你时间了,我采纳那个是我想要的,只不过我是用for做的,谢谢你了

追答

您确定这个不对么,我表示很无奈

我把那位答案拿下来运行了一下,终于理解了您的意思。您要的不就是两段代码合并出来的效果么

我仿佛看到了一万只草泥马在向我奔来.....

public static void print(){
        int[][] a = new int[4][];
        for(int i=0; i<a.length; i++){
             a[i] = new int[a.length-i];
        }
        int index =1;
        for(int i=0; i<a.length; i++){
            for(int j=0; j<a[i].length;j++){
                a[j][i] = index++;
            }
        }
        
        for(int i=0; i<a.length; i++){            
            for(int j=0; j<=a.length-a[i].length;j++){
//                System.out.print(a[j][i-j]+" ");
                System.out.print(a[j][i-j]<10 ? a[j][i-j]+"  " : a[j][i-j]+" ");
            }
            System.out.println();
        }
         
    }

T.M 我还真就不信了,这种问题都解决不了

第2个回答  推荐于2016-03-18
public class Triangle
{
public static void main(String args[])
{
int dimension = 4;
int[][] triangle = new int[dimension][dimension];

int startingPoint = 0;
int count = 1;

while(startingPoint < dimension)
{
int i = startingPoint;
int j = 0;

while(i < dimension)
{
triangle[i][j] = count++;
i++;
j++;
}
startingPoint++;
}

for(int i = 0;i < triangle.length;i++)
{
for(int j = 0 ;j<= i;j++)
{
System.out.print(triangle[i][j]+ " ");
}
System.out.println();
}
}
}
空的二维数组,程序应该没问题。你试试随便改变dimension:>。追问

嗯,是,可以,但是我是用for做的,谢谢了

追答

循环体没关系,观察好规律再想算法就行

本回答被提问者采纳
第3个回答  2014-10-31

你好:

public static void main(String[] args) {
while (true) {
System.out.print("请输入行数:");
Scanner scanner = new Scanner(System.in);
int len = scanner.nextInt();
int[][] arrs = new int[len][len];
int start = 0, count = 1;
while (start < len) {
int i = start;
int j = 0;
while (i < len) {
arrs[i][j] = count++;
i++;
j++;
}
start++;
}
if (len == 0) {
break;
}
for(int[] arr:arrs){
            for(int a:arr){
             if (a!=0) {
             System.out.print(a+"\t");
}
            }
            System.out.println();
        }
}
}

请采纳,完善了一下,数组大小可以随意输入,输入0退出;

运行结果:

请输入行数:5

1

6 2

10 7 3

13 11 8 4

15 14 12 9 5

请输入行数:3

1

4 2

6 5 3

第4个回答  2014-10-31
int[][] arrs={{1},{5,2},{8,6,3},{10,9,7,4}};
for(int[] arr:arrs){
    for(int[] a:arr){
        System.out.print(a+" ");
    }
    System.out.println();
}

第5个回答  2014-10-31
package ggg;

public class Test
{
public static void main(String args[]){
int a[][]={{1},{5,2},{8,6,3},{10,9,7,4}};
for(int i=0;i<a.length;i++){
System.out.print("\n");
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]+" ");
}

}
}
}追问

你理解错了,我要的是一个空的二维数组,然后将数放进去

相似回答