Mảng hai chiều C/C++

e mới học code, cả nhà cho e hhỏi vì sao giá trị của các phần tử ko thể nhập vào đc, sau khi nhập vào nó vẫn chỉ hiện ra cái giá trị -858993460

\#include \<iostream \ 
\#include \<array \
using namespace std;
#define MAX_SIZE 100

void Nhapmang2D(int arr[][MAX_SIZE], int &r,int &c)
{
	cout << "Moi nhap gia tri cua mang 2D: " << endl;
	for (int row = 0; row < r; row++)
	{
		for (int col = 0; col < c; col++)
		{
			cout << "arr[" << row << "][" << col << "] = ";
			cin >> arr[r][c];
		}
	}
}

void Inmang2D(int arr[][MAX_SIZE], int r, int c)
{
	cout << "Bang v2D vua nhap: " << endl;
	for (int row = 0; row < r; row++)
	{
		for (int col = 0; col < c; col++)
		{
			cout << arr[row][col] <<" ";
		}
		cout << endl;
	}

}
int main()
{
	int arr[MAX_SIZE][MAX_SIZE];
	int r,c;
	do
	{
		cout << "Nhap so luong hang: ";
		cin >> r;
		cout << "Nhap so luong cot: ";
		cin >> c;
	} while ((r < 0 || r>100) && (c < 0 || c>100));

	Nhapmang2D(arr, r, c);
	Inmang2D(arr, r, c);

	system("pause");
	return 0;
}
#include <iostream>

using namespace std;

int main()
{

    cout << "Moi ban nhap rows and columns cua mang 2 chieu"<< endl;
    int m,n;
    cin >> n >> m;
    int Arr[n][m];
    for(int i=0; i< n; i++)
    {
        for(int t =0 ; t < m ; t ++)
        {
            cin>> Arr[i][t];

        }


    }
      for(int i=0; i< n; i++)
    {   int tong=0;
        for(int t =0 ; t < m ; t ++)
        {

            tong += Arr[i][t];
        }
        cout << tong<< endl;

    }
    return 0;

}

thay bằng cin>>arr[row][col]. Vì row, col chạy nên mới ghi mảng.

#include<iostream>
using namespace std;
int main()
{
	int arr[3][3];
	for(int row =0;row<3;row++)
	{
		for(int col =0;col<3;col++)
		{
              cout<<"arr["<<row <<"]["<<col<<"]:";
              cin>>arr[row][col];
		}
	}
		for(int row =0;row<3;row++)
	{
		int S=0;
		for(int col =0;col<3;col++)
		{
			S+= arr[row][col];
	}
	cout<<S<<endl;
	}
	system("pause");
	return 0;

mình xin đóng góp 1 chút

1 Like

Em làm bài 1 ạ:

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int32_t arr1[3][4];
	cout << "This array can hold a maximum of " << 3*4 << " numbers." << endl;
	for (int32_t row = 1; row <= 3; row++) {
		for (int32_t col = 1; col <= 4; col++) {
			cout << "Enter value to data cell at row " << row << ", col " << col << " : ";
			cin >> arr1[row][col];
		}
	}
	cout << "Here is your final array: " << endl;
	cout << endl;
	for (int32_t col = 1; col <= 4; col++) {
		cout << "\t col " << col << ":";
	}
	cout << "\n";
	for (int32_t row = 1; row <= 3; row++) {
		cout << "Row " << row << ":";
		for (int32_t col = 1; col <= 4; col++) {
			cout << "\t" << arr1[row][col];
		}
		cout << "\n";
	}
	cout << endl;
	cout << endl;
	for (int32_t row = 1; row <= 3; row++) {
		int32_t col = 1;
		cout << "Sum of all the values in row " << row << ": ";
		cout << arr1[row][col] + arr1[row][col + 1] + arr1[row][col + 2] + arr1[row][col + 3];
		cout << "\n";
	}
	system("pause");
	return 0;
}
2 Likes

Bạn nên chú ý đôi chút chỗ này. arr1[][] được biểu diễn trong máy là từ arr1[0][0] cho đến arr1[2][3] Vậy nên phải sửa lại là arr1[row - 1][col - 1], còn một vài chỗ nữa, bạn tự sửa nốt nha. :slight_smile:


Mà bạn vô đây để học cách dùng markdown để format source code nha. :wink:

3 Likes
// Bài 1:


#include <iostream>
#include <stdio.h>
#include <cstdint>

using namespace std;

int main(int argc, const char * argv[]) {
    
    //khai báo mảng 2 chiều 3x3
    int64_t board[3][3];
    for (int64_t row = 0; row < 3; row++) {
        for (int64_t col = 0; col < 3; col++) {
            cin >> board[row][col]; //nhập hàng và cột
        }
        cout << endl;
    }
    //tính tổng hàng row
        for(int64_t row = 0; row < 3; row++)
        {
            int64_t tong = 0;

            for(int64_t col = 0; col < 3; col++)
            {
                tong += board [row][col];
                
            }
            cout << tong << endl; //xuất tổng
        }
    
    return 0;
}
2 Likes
    int temp = 0;
    for (int rows = 0; rows < 3; rows++)
    {
        for (int columns = 0; columns < 3; columns++)
        {
            temp = arr[rows][columns] + temp;
        }

        cout << temp << " ";
        temp = 0;
    }

Bai 1 :slight_smile:

void TongMang2C()
{
    int arr2c[100][100];
    int row = 3;
    int col = 3;
    
    for (int i = 0; i <= row-1; i++)
    {
        for (int j = 0; j <= col-1; j++)
        {
             arr2c[i][j]=i+j;
             cout << arr2c[i][j]<<" ; "; // cai này dùng để xem các phần tử đã nhập
        }
        cout << endl;
    }
    cout << " Tong Theo Hang la: " << endl;
    for (int m = 0; m <= row - 1; m++)
    {
        int sum = 0;
        for (int n = 0; n <= col - 1; n++)
        {
            sum += arr2c[m][n];
        }
        cout <<"\t"<<sum << endl;
    }
} 

Bai 2:

void TimMang2C()
{
    int n;
    int sl = 0;// tính số lần suất hiện
    int arr2c[100][100];
    int row = 6;
    int col = 6;
    for (int i = 0; i <= row - 1; i++)
    {
        for (int j = 0; j <= col - 1; j++)
        {
            arr2c[i][j] = i + j;
            cout << arr2c[i][j] << " ; ";
        }
        cout << endl;
    }
    cout << "Nhap gia tri can tim :";
    cin >> n;

    for (int i = 0; i <= row - 1; i++)
    {
        for (int j = 0; j <= col - 1; j++)
        {
            if (arr2c[i][j] == n)
            {
                sl++;
                cout << "arr2c[" << i << "][" << j << "]=" << arr2c[i][j] << endl; // xem xuất hiện tại đâu
            }
        }
        
    }
    cout << "\n Co " << sl << " lan " << n << " xuat hien "<<endl;
}

Em ko thể tìm ra lỗi gì mà code này lại chạy sai cả , mong mn tìm hộ
Bài 1

#include <iostream>
#include <array>
using namespace std;
int main(){
    int mang[2][2];
    for(int row=0;row<3;row++){
        for(int col=0;col<3;col++){
            cout<<"nhap tung gia tri cua mang"<<endl;
            cin>>mang[row][col];//nhap tung thanh phan cua mang 
        }
        cout<<endl;
   
    }
      for(int row=0; row< 3; row++)
    {   int tong=0;
        for(int col =0 ; col < 3 ; col++)
        {
            tong += mang[row][col];
        }
        cout << tong<< endl;
    }
    return 0;
}

bai 2

#include <iostream>
#include<array>
using namespace std;
int main(){
    int hang,cot,mang[100][100];
    cout<<"nhap so phan tu hang va cot cua mang 2 chieu"<<endl;
    cin>>hang>>cot;
    for(int i=0;i<hang;i++){
        for(int j=0;j<cot;j++){
            cout<<"nhap tung phan tu cua mang "<<endl;
            cin>>mang[i][j];
        }
    }
    int x;
    cout<<"nhap x"<<endl;
    cin>>x;
    for(int i=0;i<hang;i++){
        for(int j=0;j<cot;j++){
            if(mang[i][j]==x){cout<<"so x co ton tai trong mang"<<endl;}
        }
    }
    return 0;
}

Ma trận 2x2 thì chỉ số row, col của nó phải <=1.
Em cho nó <=2 thì sao nó chạy được.

4 Likes

Cảm ơn anh , em hiểu rồi …

Bài 1:

/*TỔNG CỦA TỪNG PHẦN TỬ TRONG HÀNG*/
#include<iostream>
using namespace std;
#define MAX_SIZE 50
int main(){
    int so_dong, so_cot;
    cout << "Nhap so dong: ";
    cin >> so_dong;
    cout << "Nhap so cot: ";
    cin >> so_cot;
    int arr[MAX_SIZE][MAX_SIZE];
    for(int i=0; i<=so_dong-1; i++){
        for(int j=0; j<=so_cot-1; j++){
            cout << "arr[" << i << "][" << j << "] = ";
            cin >> arr[i][j];
            cout << endl;
        }
    }
    cout << "Mang 2 chieu vua nhap la: " << endl;
    for(int i=0; i<=so_dong-1; i++){
        for(int j=0; j<=so_cot-1; j++){
            cout << arr[i][j] << "\t";
        }
        cout << endl;
    }
    cout << "Tong cua tung phan tu trong hang: " << endl;
    for(int i=0; i<=so_dong-1; i++){
        int sum=0;
        for(int j=0; j<=so_cot-1; j++){
            sum+=arr[i][j];
        }
        cout << sum << endl;
    }
    system("pause");
    return 0;
}

Bài 2:

/*TÌM KIẾM PHẦN TỬ TRONG MẢNG 2D*/
#include<iostream>
using namespace std;
#define MAX_SIZE 50
int main(){
    int so_dong, so_cot;
    cout << "Nhap so dong: ";
    cin >> so_dong;
    cout << "Nhap so cot: ";
    cin >> so_cot;
    int arr[MAX_SIZE][MAX_SIZE];
    for(int i=0; i<=so_dong-1; i++){
        for(int j=0; j<=so_cot-1; j++){
            cout << "arr[" << i << "][" << j << "] = ";
            cin >> arr[i][j];
            cout << endl;
        }
    }
    cout << "Mang 2 chieu vua nhap la: " << endl;
    for(int i=0; i<=so_dong-1; i++){
        for(int j=0; j<=so_cot-1; j++){
            cout << arr[i][j] << "\t";
        }
        cout << endl;
    }
    int x, count=0;
    cout << "Nhap gia tri X can tim kiem: " << endl;
    cin >> x;
    for(int i=0; i<=so_dong-1; i++){
        for(int j=0; j<=so_cot-1; j++){
            if(x==arr[i][j]) count++;
        }
    }
    if(count!=0){
        cout << "X is found. It appears " << count << " times in this array2D." << endl;
    }
    else cout << "X is not found. Goodbye." << endl;
    system("pause");
    return 0;
}

Bài của mình trình bày Tiếng Việt cho dễ hiểu cho những ai mới học C++ như mình, các cậu xem thử với! Cảm ơn!

1 Like

bai1

#include <iostream>
using namespace std;
int main()
{
    int arr[3][3];//khai bao mang
    int count,sum0 = 0,sum1 = 0,sum2 = 0 ; // khai bao bien
    for (int row = 0; row < 3; row++) { //hang
        for (int col = 0; col < 3; col++) { //cot
            cin >> arr[row][col];//nhap

            if(row==0)
                sum0 += arr[row][col];
            else if(row==1)
                sum1 += arr[row][col];
            else
                sum2 += arr[row][col];
        }
    }
    system("cls");// xoa man hinh
    for (int i = 0; i < 3; i++) { // xuat mang ra
        for (int j = 0; j < 3; j++) {
            cout << arr[i][j] << "  ";
        }
        cout << endl;
    }

    cout << "tong hang 1: "<<sum0<<" \ntong hang 2: "<<sum1<<" \ntong hang 3: "<<sum2<<"";
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int array[3][3];
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << i << "," << j << ": " << flush;
            cin >> array[i][j];
        }
        cout << endl;
    }
    int array_sum[3][1];
    for (int k = 0; k < 3; k++) {
        array_sum[k][0] = array[k][0] + array[k][1] + array[k][2];
        cout << array_sum[k][0] << endl;
    }
    return 0;
}
#include<iostream>
using namespace std;
int main()
{
	cout << "Hay nhap mot mang 2 chieu 4x5: " << endl;
	int arr[4][5];
	int row, column;
	for (row = 0; row < 4; row++)
	{
		for (column = 0; column < 5; column++)
		{
			cin >> arr[row][column];
		}
		cout << endl;
	}
	system("cls"); //thích thì để delete console
	int tong = 0;
	for (row = 0; row < 4; row++)
	{
		for (column = 0; column < 5; column++)
		{
			tong = arr[row][column] + tong;
		}
		cout << tong << endl;
		tong = 0;
	}
	system("pause");
	return 0;
}

bạn cần một cái để nhập mảng và một cái xuất mảng thôi hihi ^^

Bai 1:

#include<iostream>
using namespace std; 
int main(){
    int n, m;
    cout<<"Enter row: ";
    cin >>n;
    cout<<"Enter colum: ";
    cin>>m;
	int arr[n][m];
	
	for(int i = 0; i <n; i++){
		for(int j = 0; j <m; j++){
			cout<<"Enter arr["<<i<<"]["<<j<<"]";
			cin>>arr[i][j];
			cout<<endl;
		}
	}
	
	int sum =0;	
    
	for(int i = 0;i<n;i++){
	    for(int j = 0; j<m;j++){
	        sum+=arr[i][j];
	    }
	    cout<<"Sum of row "<<i<<": ";
	    cout <<sum<<endl;
	    sum = 0;
	}
	return 0;

bai 1 cua minh:

#include <iostream>
using namespace std;
int main()
{
	cout << "Nhap mang 2 chieu co so cot so dong tuy y va cho ket qua cua tung dong" << endl;
	int tong = 0, tong2 = 0, tong3 = 0, tong4 = 0;
	int arr[4][3];
	for (int sodong = 0; sodong <= 3; sodong++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			cout << "Nhap gia tri: "; cin >> arr[sodong][socot];
		}
	}
	for (int sodong = 0; sodong <= 0; sodong++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			tong = tong + arr[sodong][socot];
			
		}
		cout << "Tong cua dong thu " << sodong + 1<< " la: " << tong << endl;
	}
	for (int sodong = 1; sodong <= 1; sodong++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			tong2 = tong2 + arr[sodong][socot];
			
		}
		cout << "Tong cua dong thu " << sodong + 1 << " la: " << tong2 << endl;
	}
	for (int sodong = 2; sodong <= 2; sodong++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			tong3 = tong3 + arr[sodong][socot];
			
		}
		cout << "Tong cua dong thu " << sodong + 1 << " la: " << tong3 << endl;
	}
	for (int sodong = 3; sodong <= 3; sodong++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			tong4 = tong4 + arr[sodong][socot];
			
		}
		cout << "Tong cua dong thu " << sodong + 1 << " la: " << tong4 << endl;
	}

}
1 Like
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
	cout << "Chuong trinh nhap 1 gia tri va kiem tra gia tri do co trong mang 2 chieu khong" << endl;
	int arr[3][3];
	for (int sohang = 0; sohang <= 2; sohang++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			cout << "Nhap gia tri: "; cin >> arr[sohang][socot];
		}
	}
	int find;
	cout << "Nhap phan tu muon kiem tra: "; cin >> find;
	for (int sohang = 0; sohang <= 2; sohang++)
	{
		for (int socot = 0; socot <= 2; socot++)
		{
			if (find == arr[socot][sohang])
			{
				cout << "Phan tu " << find << " da tim thay" << endl;
				break;
			}
			if (find != arr[socot][sohang])
			{
				/*cout << "Phan tu " << find << " khong xuat hien trong mang" << endl;*/
				continue;
				//continue;
				//if (/*cin.eof() && */ find != arr[socot][sohang])
				//{
				//	cout << "Phan tu " << find << " khong xuat hien trong mang" << endl;
				//	break;
				//}
			}
			
		}
	}
}

bai 2 cua minh, minh chi tim duoc gia tri co xuat hien trong mang nhung khong biet xu lys khi nhap gia tri khong co trong mang. Ban nao biet giup minh voi

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