Giúp mình code xuất ma trận có dạng như sau

1 5 9
2 6 10
3 7 11
4 8 12

Các dạng khác thì minhg đã làm được, không hiểu sao in ra kiểu này làm mãi không ra,Cám ơn trước ạ

Bạn sử dụng endl ở vòng for để xuống hàng thôi :)).

i, j chỉ số từ 0
số dòng là n, số cột là m
phần tử ở ô (i, j) có giá trị i + 1 + j*n

Bạn cho một biến lưu lại số vừa in ra.
Số tiếp theo sẽ bằng số trước đó cộng cho số hàng.

như vậy nó in ra
1
2
3
4
5
6
…luôn chứ bạn

giá trị thì mình dùng 1 biến đếm, ý mình ở đây là xuất theo dạng từ trên xuống từng hàng một
1 4
2 5
3 6

Bạn cho 2 vòng for lòng vào nhau, sau khi kết thúc vòng for trong thì cho nó xuống dòng.

for ( i = 0; i < n; I++)
{

       // bắt đầu in ra hàng thứ i
       for ( j = 0;  j < m; j++)
       {
                // do something
       }

       // xuống dòng khi kết thúc một hàng
       std::cout << std::endl; 
}

// n là số hàng
// m là số cột

:)), endl ở vòng for ngoài ấy. chứ ko phải là ở vòng for trong cùng đâu. Nếu muốn xuất từ trên xuống từng hàng 1 thì bạn đổi lại, xuất cột trước, hàng sau :3

for(int i = 0; i <hang; i++) {
	for(int j = 0; j < cot; j++)
	{
		a[j][i] = dem;
		cout << a[j][i];
		dem++;
	}
	cout << endl;
}

như này hả bạn, nó ra theo hàng ngang :frowning:

for (int i = 0; i < row; i++){
	for (int j = 0; j < col; j++)
		cout << (i + 1 + j*row) << " ";
	cout << "\n";
}
#include <iostream>
using namespace std;
int main()
{
    int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
    for(int i = 0; i <4; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            cout << a[j][i];
        }
    cout << endl;
    }
}

sao mình gán a[ j ][ i ]
bằng biến đếm thì lại xuất theo hàng ngang nhỉ?

code của bạn Phúc cái gán a [ i] [ j ] = i + 1 + j*hang mình không hiểu lắm

thì cứ theo cái này, có phải cột 0 đầu tiên sẽ gồm các số từ 1 đến row, cột 1 sẽ gồm các số từ row+1 đến 2row, …
hay nói cách khác, cột chỉ số j (j tính từ 0) sẽ gồm các số từ j
row + 1 đến jrow + 1 + row - 1
hay j
row + 1 + (0) đến j*row + 1 + (row-1)
nếu để ý thì cái trong ngoặc chính là chỉ số dòng (từ 0 đến row-1) -> có công thức

rồi,hiểu rồi :slight_smile: cám ơn bạn

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