01/10/2018, 10:24
Giúp tìm lỗi trong code mảng 2 chiều bị lặp vô hạn khi nhập mảng
#include<iostream>
#include<stdlib.h>
#include<conio.h>
using namespace std;
void nhapgiatri(int m[10][10]);
int main()
{
int a[10][10],b[10][10],c[10][10];
int row,col;
cout<<"
nhap gia tri hang & cot : ";
cin>>row>>col;
cout<<"
nhap gia tri mang a : ";
nhapgiatri(a);
cout<<"
nhap gia tri mang b : ";
nhapgiatri(b);
for(int i=0;i<row;++i)
{
for(int j=0;j<col;++j)
{
*(*(c+i)+j) = *(*(a+i)+j) + *(*(b+i)+j);
}
}
cout<<"
tong cua 2 mang da cho la : ";
for(int k=0;k<row;++k)
{
for(int l=0;l<col;++l)
{
cout<<*(*(c+k)+l)<<" ";
}
}
getch();
}
void nhapgiatri(int m[10][10])
{
int row,col;
for(int i=0;i<row;++i)
{
for(int j=0;j<col;++j)
{
cin>>m[i][j];
}
}
}
Bài liên quan
row, col
ở hàmnhapgiatri
là nó khác so vớirow, col
ở hàmmain
. Bạn thử vào hàmnhapgiatri
in thử 2 biến đó ra xem bao nhiêu. lúc nó bạn sẽ tự biết phải làm gì tiếp theoe sửa đc r ạ ? e cám ơn ạ
Kích thước của mảng 2 chiều của bạn phải là biến toàn cục, bởi kích thược row, col bạn nhập vào đóng vai trò quan trọng trong tất cả các chương trình ở sau.
Ở đây bạn đã khai báo row, col là biến cục bộ của
void nhapgiatri
. Biến row, col này không liên quan đến biếnrow, col
bạn khai báo trong hàm main. Có 2 cách sửa:row, col
trong hàm main ra ngoài. Lúc này 2 biến này là biến toàn cục. Bỏ biếnrow, col
trongvoid nhapgiatri
đi.row, col
trong hàm main, tuy nhiênvoid nhapgiatri
đưa thêm 2 tham trị làrow
vàcol
, tức làGóp ý: Bạn code C++, mình cũng mong bạn không code kiểu này nữa
Trông khổ sở kiểu gì ấy, mà trông không được sáng sủa. Khổ nhất là lúc debug.
vì e thấy trong giáo trình họ nói khi dùng con trỏ việc truy xuất bộ nhớ nhanh hơn khi dùng chỉ số mảng …nên e mới dùng chứ nhìn n cũng tù lắm ạ …
Biết là nó nhanh hơn, nhưng việc chưa nắm vững cơ bản thì bạn cần cải thiện trước đã. Cái gì cũng có 2 mặt, khi nào cầm dao chắc thì mới tập múa dao nhé.
Không nhanh hơn mấy đâu, nếu là primitive. Vả lại dùng con trỏ thì bạn có thể làm được những trick như shallow copy, dancing link, giảm mem trong QHĐ hay xử lí chuỗi chứ viết kiểu ersatz ntn thì ko phải là ứng dụng của nó.