01/10/2018, 15:56
Lỗi xóa 1 dòng trong mảng 2 chiều
Bài tập xóa đi 1 dòng h trong mảng 2 chiều a thì em làm như dưới ạ, nhưng đến khi compile và chạy thì khi in ra mảng sau khi xóa thì không được ạ, trong khi những bài tập khác thì in ra bình thường . Các anh có thể thể tìm và chữa lỗi code cho em được không ạ, em cảm ơn
#include <iostream>
#include <cstdlib>
#define nRow 50
#define nCol 50
using namespace std;
void NhapMang(int a[nRow][nCol],int &nrow, int &ncol)
{
while (1)
{
cout<<"Nhap so hang cua mang: "<<' ';
cin >>nrow; cout << endl;
cout<<"Nhap so cot cua mang: "<<' ';
cin >>ncol; cout << endl;
if (nrow<1||nrow>nRow||ncol<1||ncol>nCol)
continue;
else break;
}
for (int i=0;i<nrow;i++)
for (int j=0;j<ncol;j++)
{
cout<<"Nhap gia tri a["<<i<<"]["<<j<<"]: ";
cin >> a[i][j]; cout<< endl;
}
}
void LoaiBoDong(int a[nRow][nCol],int &nrow,int &ncol,int h)
{
for (int i=h;i<nrow-1;i++)
for (int j=0;i<ncol;j++)
{
a[i][j]=a[i+1][j];
}
nrow--;
}
void XuatMang2Chieu(int a[nRow][nCol], int nrow, int ncol)
{
for (int i=0; i< nrow; i++)
{
for (int j=0; j< ncol;j++)
{
cout<<a[i][j]<<' ';
}
cout << endl;
}
}
int main()
{
int a[nRow][nCol],h,nrow, ncol;
NhapMang(a,nrow,ncol);
XuatMang2Chieu(a,nrow,ncol);
cout<<"Nhap h: ";
cin>>h; cout<< endl;
LoaiBoDong(a,nrow,ncol,h);
XuatMang2Chieu(a,nrow,ncol);
system("pause");
}

Bài liên quan
Ở hàm LoaiBoDong bạn nên sửa vòng lặp con lại là : “int j = 0; i < ncol; j++” thành “int j = 0; j < ncol; j++”,