首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >0和1的Concentrix矩阵

0和1的Concentrix矩阵
EN

Stack Overflow用户
提问于 2021-09-21 08:36:06
回答 1查看 95关注 0票数 0

我已经创建了一个生成0和1的交替平方的程序,但是它没有显示预期的输出。请帮帮忙。

代码语言:javascript
复制
    import java.util.Scanner;
public class LEDLights {

            public static void main(String[] args) {
                
                int size;
                
                  System.out.println("Enter the size of an array:");
                  Scanner sc=new Scanner(System.in);
                  size=sc.nextInt();
                  System.out.println("Enter the array elements:");
                int myarr[][]=new int[size][size];    
                         for(int i = 0; i < size; i++)
                            {
                                
                                
                                for(int j = 0; j < size; j++)
                                {
                                    myarr[i][j]=sc.nextInt();
                                    
                                }
                            }
                         System.out.println("Status of the lights");
                         for(int i = 0; i < size; i++)
                            {
                                
                                
                                for(int j = 0; j < size; j++)
                                {
                                
                                    System.out.print( myarr[i][j]+ " ");
                                    
                                }
                                System.out.println();
                            }    
                         
                         
                          //int n=5;
                        
                        //printing the outer loop   
                            for(int i = 0; i < size; i++)
                            {
                                
                                
                                for(int j = 0; j < size; j++)
                                {
                                
                                    
                                    if(i==0 || i==size-1 || j==0 || j==size-1)
                                    myarr[i][j]=1;
                                }   
                            }
                    //  inner loops of 1
                        //  int p=size;
                            for(int p=size-3;p>=size/2;p-=2) {
                            for(int t =2 ; t <=size/2; t+=2)
                                {
                              // int p=size-3;
                                //while(p>=size/2) {
                            
                                    for(int i = t; i <=p; i++)
                                    {
                                        
                                        
                                        for(int j = t; j <=p; j++)
                                        {
                                        
                                    
                                            
                                            if(i==t || i==p || j==t || j==p)
                                            myarr[i][j]=1;
                                        }   
                                    }
                                }
                                //p-=2;
                                
                        }
                    
                            
//      inner loops of 0
                            
                            for(int k =1 ; k <size/2; k+=2)
                            {
                                for(int p=size-2;p>size/2;p-=2) {
                            for(int i = k; i <=p; i++)
                            {
                                
                                
                                for(int j = k; j <=p; j++)
                                {
                                
                            
                                    
                                    if(i==k || i==p || j==k || j==p)
                                    myarr[i][j]=0;
                                }   
                            }   
                        
                            }
                            }
                            
                            System.out.println("LED lights blinking\n");
                            
                            for(int i = 0; i < size; i++)
                            {
                                
                                
                                for(int j = 0; j < size; j++)
                                {
                                
                                    System.out.print( myarr[i][j]+ " ");
                                    
                                }
                                System.out.println();
                            }   
                            
            }


}

预期产出为8*8

代码语言:javascript
复制
1 1 1 1 1 1 1 1 
1 0 0 0 0 0 0 1 
1 0 1 1 1 1 0 1 
1 0 1 0 0 1 0 1 
1 0 1 0 0 1 0 1 
1 0 1 1 1 1 0 1 
1 0 0 0 0 0 0 1 
1 1 1 1 1 1 1 1 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-21 09:07:59

代码语言:javascript
复制
import java.util.Scanner;

class LEDLights {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.println("Enter the size of an array:");
        int size = sc.nextInt();

        System.out.println("Enter the outer status of light. Either 0 or 1");
        int startPoint = sc.nextInt();

        int[][] myarr = new int[size][size];

        myarr = updateArr(myarr, 0, size, startPoint);

        for (int i = 0; i < size; i++) {
            for (int j = 0; j < size; j++)
                System.out.print(myarr[i][j] + " ");
            System.out.println();
        }
    }

    private static int[][] updateArr(int[][] myarr, int startsize, int endsize, int startPoint) {

        if (startsize > endsize)
            return myarr;
        for (int i = startsize; i < endsize; i++)
            for (int j = startsize; j < endsize; j++)
                myarr[i][j] = startPoint;
        return updateArr(myarr, startsize + 1, endsize - 1, (startPoint == 0) ? 1 : 0);
    }
}

这将为您提供一个备用代码,但将执行更多的迭代。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69265805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档