30/09/2018, 23:45

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 ạ

Hoàng Trung viết 01:55 ngày 01/10/2018

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

Nguyễn Xuân Phúc viết 01:57 ngày 01/10/2018

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

Dat viết 01:58 ngày 01/10/2018

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.

Nguyễn Thiên Nhã viết 01:54 ngày 01/10/2018

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

Nguyễn Thiên Nhã viết 01:56 ngày 01/10/2018

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

Dat viết 01:47 ngày 01/10/2018

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
Hoàng Trung viết 01:45 ngày 01/10/2018

:)), 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

Nguyễn Thiên Nhã viết 01:55 ngày 01/10/2018
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

Nguyễn Xuân Phúc viết 02:00 ngày 01/10/2018
for (int i = 0; i < row; i++){
	for (int j = 0; j < col; j++)
		cout << (i + 1 + j*row) << " ";
	cout << "\n";
}
Hoàng Trung viết 01:47 ngày 01/10/2018
#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;
    }
}
Nguyễn Thiên Nhã viết 01:59 ngày 01/10/2018

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

Nguyễn Thiên Nhã viết 01:50 ngày 01/10/2018

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

Nguyễn Xuân Phúc viết 01:54 ngày 01/10/2018

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

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

Nguyễn Thiên Nhã viết 01:54 ngày 01/10/2018

từ 0 đến row-1

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

Bài liên quan
0