Chào mọi người .
Em là Học
Hôm nay em xin trình bày vấn đề em gặp phải trong lúc code mà sửa hoài không ra .
Đây là code của em.
#include <iostream>
#include <vector>
#include <conio.h>
using namespace std;
void capphat(vector<vector<int>> &a , int sodong ,int socot)
{
a.resize(sodong);
for( int i = 0 ; i < a.size() ; i++)
{
a[i].resize(socot);
}
}
void nhap(vector<vector<int>> &a)
{
for( int i = 0 ; i < a.size() ; i++)
{
for( int j = 0 ; j < a[i].size(); j++)
{
cout << "A["<<i<<"]["<<j<<"]= ";
cin >> a[i][j];
}
}
}
void xuat(vector<vector<int>> a)
{
for( int i = 0 ; i < a.size(); i++)
{
for( int j = 0 ; j < a[i].size() ; j++)
cout << a[i][j] << "\t ";
cout << endl;
}
}
void HuyBo(vector<vector<int>> a)
{
for(int i = 0 ; i < a.size() ; i++)
{
a[i].clear();
}
a.clear();
}
bool MAX(int a,int b)
{
return a > b;
}
bool MIN(int a,int b)
{
return a < b;
}
int Timkiem(vector<vector<int>> a , bool (*p)(int ,int ) )
{
int sosanh = a[0][0];
for(int i = 0 ; i < a.size(); i++)
{
for( int j = 0 ; j < a[i].size(); j++ )
{
if( p(sosanh,a[i][j]) )
sosanh = a[i][j];
}
}
return sosanh;
}
void XoaDong(vector<vector<int>> &a, int vitridongcanxoa)
{
for( int i = vitridongcanxoa ; i < a.size() - 1 ; i++)
{
for( int j = 0 ; j < a[i].size(); j++)
{
a[i][j] = a[i+1][j];
}
}
a[vitridongcanxoa + 1].clear();
a.resize(a.size() - 1);
}
void XoaCot(vector<vector<int>> &a, int vitricotcanxoa)
{
for( int i = vitricotcanxoa ; i < a[i].size() - 1 ; i++)
{
for( int j = 0 ; j < a.size(); j++)
{
a[j][i] = a[j][i+1];
}
}
for( int i = 0 ; i < a.size() ; i++)
{
a[i].resize(a[i].size() - 1);
}
}
void main()
{
vector<vector<int>> a;
int sodong,socot;
cout << "Nhap So Dong: ";
cin >> sodong;
cout << "Nhap So Cot : ";
cin >> socot;
capphat(a,sodong,socot);
nhap(a);
xuat(a);
cout << "\nGiaTri Lon Nhat Trong Mang La: " << Timkiem(a,MIN);
cout << "\nGiaTri Nho Nhat Trong Mang La: " << Timkiem(a,MAX);
cout << "\nXoa Dong ";
int xoadong;
cout << "Nhap Vi Tri Dong Muon Xoa: ";
cin >> xoadong;
XoaDong(a,xoadong);
xuat(a);
cout <<"a";
cout << "\nXoa Cot ";
int xoacot;
cout << "Nhap Vi Tri Cot Muon Xoa: ";
cin >> xoacot;
XoaCot(a,xoacot);
xuat(a);
cout <<"a";
HuyBo(a);
getch();
}
code Khá Dài nên mọi người thông cảm .
em gặp vấn để ở 2 hàm sau đây .
void XoaDong(vector<vector<int>> &a, int vitridongcanxoa)
{
for( int i = vitridongcanxoa ; i < a.size() - 1 ; i++)
{
for( int j = 0 ; j < a[i].size(); j++)
{
a[i][j] = a[i+1][j];
}
}
a[vitridongcanxoa + 1].clear();
a.resize(a.size() - 1);
}
void XoaCot(vector<vector<int>> &a, int vitricotcanxoa)
{
for( int i = vitricotcanxoa ; i < a[i].size() - 1 ; i++)
{
for( int j = 0 ; j < a.size(); j++)
{
a[j][i] = a[j][i+1];
}
}
for( int i = 0 ; i < a.size() ; i++)
{
a[i].resize(a[i].size() - 1);
}
}
Khi em chỉ gọi 1 hàm thì nó lại làm đúng.
nhưng khi em gọi và thực hiện 2 hàm trên cùng 1 lúc thì nó đột nhiên trong lúc chạy nó báo lỗi ( theo em thì lỗi đó là Suy suất bộ nhớ sai ) .Mọi người có thể chạy thử code ở trên
- Em nghĩ là em sai ở chỗ lúc mà em cập nhật lại bộ nhớ nhưng sửa hoài ko ra .
Mong mọi người giúp em
Em xin cảm ơn mọi người đã xem topic này của em.