Cách xuất mảng trong java?

Mình có 1 mảng 2 chiều, giá trị các phần tử là random.
Tìm các số chẵn trong mảng 2 chiều và lưu các số chẵn này vào mảng 1 chiều
Bây giờ mình muốn xuất giá trị trong mảng 1 chiều mà không xuất các giá trị mặc định = 0 thì phải làm thế nào?

đây là code:

        int n = 3;
        int a[][] = new int [n][n];
        
        //khai báo mảng 1 chiều để lưu các số chẵn từ mảng 2 chiều
        int b[]=new int[10]; 
        int dem = 0;
        int tong = 0;
        
        //input phần tử vào mảng 2 chiều
        for(int i = 0; i< n; i++)
            for(int j=0; j<n; j++)
                a[i][j] = (int)(Math.random()*100);
        
        //output mảng 2 chiều và lưu các số chẵn trong mảng 2 chiều này vào mảng 1 chiều (mảng b)
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++)
            {
                System.out.printf("%3d",a[i][j]);
                if(a[i][j] % 2 == 0)
                {
                    b[dem] = a[i][j];
                    dem++;
                }
            }
             System.out.println();  
        }
        
        //xuất mảng 1 chiều
       //do phần tử nào chưa được gán giá trị thì giá trị sẽ mặc định bằng 0
        System.out.print("Các số chẵn trong mảng: ");
        for(int i = 0; i < b.length; i++)
            System.out.print(b[i] +" ");
        
        //tổng các số chẵn trong mảng 1 chiều
        for(int i = 0; i < b.length; i++)
            tong = tong + b[i];
        System.out.print("\nTổng các số chẵn trong mảng: " +tong);
    }

đây là kết quả:

Cách thứ nhất Đếm số các số mà bạn thêm vào mảng 1 chiều rồi cho for chạy tới đó :smiley:
Cách 2 là dùng mảng động :sweat_smile:

int[] a = {0, 1, 2, 3, 5, 0, 8, 0};
for( i: 0 -> a.length) if (a[i] > 0 thì in ra…)

bạn chỉ mình cấp phát mảng động cho mảng 1 chiều được k, sao mình google không thấy nhỉ :smile:

Sao mình lại thấy nhỉ :laughing:
Cấp phát động java

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?