JAVA循环语句输出矩阵问题(在线等)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA循环语句输出矩阵问题(在线等)相关的知识,希望对你有一定的参考价值。

求大神帮我用循环语句输出两个矩阵
1、1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
2、
25 24 23 22 21
10 9 8 7 20
11 2 1 6 19
12 3 4 5 18
13 14 15 16 17
最好有代码

参考技术A public class TwoMatrix
public void matrix1(int n)
int a=n*2-1;
int[][] m=new int[a][a];
for(int i=1;i<=n;i++)
for(int j=i-1;j<=a-i;j++)
for(int k=i-1;k<=a-i;k++)
m[j][k]=i;

show(m);

public void matrix2(int n)
int nn=n*n;
int[][] m=new int[n][n];
int[] coo=new int[]0,0,1;
while(nn>0)
m[coo[0]][coo[1]]=nn;
if(nn==1)break;
next(m,coo,n);
//System.out.println(""+coo[0]+" "+coo[1]);
nn--;

show(m);

private void next(int[][] m,int[] c,int n)
switch(c[2])
case 1:c[1]++;
if(c[1]==n||m[c[0]][c[1]]!=0)
c[1]--;
c[2]=2; 
next(m,c,n);

break;
case 2:c[0]++;
if(c[0]==n||m[c[0]][c[1]]!=0)
c[0]--;
c[2]=3; 
next(m,c,n);

break;
case 3:c[1]--;
if(c[1]<0||m[c[0]][c[1]]!=0)
c[1]++;
c[2]=4; 
next(m,c,n);

break;
case 4:c[0]--;
if(c[0]<0||m[c[0]][c[1]]!=0)
c[0]++;
c[2]=1; 
next(m,c,n);

break;


private void show(int[][] m)
for(int i=0;i<m.length;i++)
for(int j=0;j<m[i].length;j++)
System.out.print(""+m[i][j]+"\\t");
System.out.println();


public static void main(String[] args)
TwoMatrix m=new TwoMatrix();
m.matrix1(4);
m.matrix2(5);

参考技术B 如果只这么要求的话 给你一个思路 用二维数组
public static void main(String[] args)
int[][] a=1,1,1,1,1,1,2,2,2,1,1,2,3,2,1,1,2,2,2,1,1,1,1,1,1;
for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++)
System.out.print(a[i][j]+" ");

System.out.println();



第二题只是把数组成员换一下

如果要考虑依次输出的话 另说
不过思路也差不多 把换行输出 跳跃填充到数组里
然后输出数组就可以了本回答被提问者和网友采纳
参考技术C

按照你的要求编写的Java程序如下:

public class AA 

 public static void main(String[] args) 

  final int N=5;

  int a[][]=new int[N][N];

  int number=(N-1)/2;

  for(int k=0;k<=(N-1)/2;k++)

   for(int i=0;i<N;i++)

    for(int j=0;j<N;j++)

     if(i==(N-1)/2-k || j==(N-1)/2-k || i==N/2+k || j==N/2+k)

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

    

   

   number--;

  

  for(int i=0;i<N;i++)

   for(int j=0;j<N;j++)

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

   

   System.out.println();

  

  

  System.out.println();

  System.out.println();

  int b[][]=new int[N][N];

  int num=N*N;

  int i=0,j=0,m=0;

  if(N%2==0) 

   m=N/2; 

  else 

   m=N/2+1; 

  for(i=0;i<=m-1;i++)  

   for(j=i;j<=N-i-1;j++)

    b[i][j]=num;

    num--;

    

   for(j=i+1;j<=N-i-1;j++) 

    b[j][N-i-1]=num;

    num--;

     

   for(j=N-i-2;j>=i;j--)

    b[N-i-1][j]=num;

    num--;

    

   for(j=N-i-2;j>=i+1;j--)

    b[j][i]=num;

    num--;

    

   

  for(i=0;i<N;i++)

   for(j=0;j<N;j++)

    System.out.print(String.format("%2d",b[i][j])+" ");

   

   System.out.println();

  

 

运行结果:

1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1


25 24 23 22 21
10  9  8  7 20
11  2  1  6 19
12  3  4  5 18
13 14 15 16 17

参考技术D int str[][]=new int[5][5];
for(int i=0;i<str.length;i++)

System.out.println();
for(int ii=0;ii<str[0].length;ii++)


if((i>=1&&i<=3)&&(ii>=1&&ii<=3))

str[i][ii]=2;
System.out.print(str[i][ii]);
else
str[i][ii]=1;
System.out.print(str[i][ii]);



第二题·我写的话太多if了·感觉不好·等高手回答吧。。
第5个回答  2013-07-10 用二维数组比较难理解,祢要是可以理解当然不错,理解不了就用二重循环吧

JAVA SE基础篇14.循环嵌套

在循环语句中,再嵌套一个或多个循环,称位循环嵌套

用几个由浅入深的例子来了解循环嵌套:

1.输出一个3*3的矩阵

for(int i = 0;i<3;i++){
  for(int j = 0;j<3;j++){
    System.out.print(" * ");
  }
  System.out.println();
}

输出结果:

* * *
* * *
* * *

2.输出一个99乘法表

for(int i=0;i<10;i++){//i是第一个数
  for(int j=0;j<i+1;j++){//j是第二个数
    System.out.print(" "+j+"*"+i+"="+i*j+" ");
  }
  System.out.println();
}

输出结果:

0*0=0
0*1=0 1*1=1
0*2=0 1*2=2 2*2=4
0*3=0 1*3=3 2*3=6 3*3=9
0*4=0 1*4=4 2*4=8 3*4=12 4*4=16
0*5=0 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
0*6=0 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
0*7=0 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
0*8=0 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
0*9=0 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

3.求出1-100之间基数之和和偶数之和

int jishusum=0;
int oushusum=0;
for(int i=0;i<101;i++){
  if(i%2==0){
    oushusum+=i;
  }else{
    jishusum+=i;
  }
}
System.out.println("偶数和:"+oushusum);
System.out.println("基数和:"+jishusum);

输出结果:

偶数和:2550
基数和:2500

4.百钱百鸡

公鸡5块1个,母鸡3块1个,小鸡3个一块,100块全买鸡,不许剩钱,三种必须都买,怎么搭配?

for(int a=1;a<20;a++){
  for(int b=1;b<34;b++){
    int c=100-a-b;
    if ((c % 3 == 0) && (a * 5 + b * 3 + c / 3 == 100)){
      System.out.println("公鸡:"+a+"母鸡:"+b+"小鸡:"+c);
    }
  }  
}

输出结果:

公鸡:4母鸡:18小鸡:78
公鸡:8母鸡:11小鸡:81
公鸡:12母鸡:4小鸡:84

 

以上是关于JAVA循环语句输出矩阵问题(在线等)的主要内容,如果未能解决你的问题,请参考以下文章

mssql 存储过程中循环如何写,在循环中用啥语句跳出循环呢,在线等

matlab怎样通过for循环语句找出两矩阵相同的行和列?

java用简单循环语句输出a^z小写正序,大写逆序

在线编程的简单输入输出

Java 循环语句

while循环语句 格式化输出等一些练习