
MA TRẬN
Hàm nhập & xuất ma trận các số nguyên
void nhap(int a[][100],int &m,int &n)
{
printf("Nhap m:");
scanf("%d",&m);
printf("Nhap n:");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]:",i,j);
scanf("%d",&a[i],[j]);
}
}
void xuat(int a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
}
Hàm nhập & xuất ma trận các số thực
void nhap(float a[][100],int &m,int &n)
{
printf("Nhap m :");
scanf("%d",&m);
printf("Nhap n :");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]:",i,j);
scanf("%f",&a[i],[j]);
}
}
void xuat(float a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%8.3f",a[i][j]);
printf("\n ");
}
}
Hàm nhập & xuất ma trận các số nguyên dài

void nhap(long a[][100],int &m,int &n)
{
printf("Nhap m :");
scanf("%d",&m);
printf("Nhap n:");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]",i,j);
scanf("%ld",&a[i][j]);
}
}
void xuat(long a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%ld",a[i][j]);
printf("\n ");
}
}
Hàm nhập & xuất ma trận các số thực dài
void nhap(double a[][100],int &m,int &n);
{
printf("Nhap m :");
scanf("%d",&m);
prinf("Nhap n :");
scanf("%d",&n);
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
{
printf("Nhap a[%d][%d]",i,j);
scanf("%lf",&a[i][j]);
}
}
void xuat(double a[][100],int m,int n)
{
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%lf",a[i][j]);
printf("\n ");
}
}
Chuyên đề về ma trận thường
Kĩ thuật tính toán
320 Tổng các số dương trong ma trận thực
int TongSoDuong(int a[][100], int n, int m)

{
int s=0;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
if (a[i][j]>0)
s+=a[i][j];
return s;
}
321 Tích các số lẻ trong ma trận nguyên
int TichGiaTriLe(int a[][100], int n, int m)
{
int t=1;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
if (a[i][j]%2!=0)
t*=a[i][j];
return t;
}
322 Tổng giá trị trên 1 dòng ma trận thực
int TongDongX(float *a, int m) //chuy?n a[x] , x là dòng mà b?n c?n tính t?ng
{
int S=0;
for (int i=0; i<m; i++)
S+=a[i];
return S;
}
323 Tích giá trị dương trên 1 cột ma trận thực
float TichDuongCotY(float a[][100], int n, int m, int y) //y là s? c?t c?n tính
{
float T=1;
for (int i=0; i<n; i++)
if (a[i][y]>0)
T*=a[i][y];
return T;
}
324 Tổng giá trị dương trên 1 dòng ma trận thực
int TongDuongDongX(float *a, int m)
//chuy?n a[x] , x là dòng mà b?n c?n tính t?ng
{
int S=0;
for (int i=0; i<m; i++)
{
if (a[i]>0)
S+=a[i];
}
return S;
}
325 Tích các chẵn trên 1 cột ma trận nguyên
int TichChanCotY(int a[][100], int n, int m, int y) //y là s? c?t c?n tính
{
int T=1;
for (int i=0; i<n; i++)

if (a[i][y]%2 = =0)
T*=a[i][y];
return T;
}
326 Trung bình cộng các số dương ma trận thực
float TBCongDuong(float a[][100], int n, int m)
{
int S=0;
int dem =0 ;
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
if (a[i][j]>0)
{
S+=a[i][j];
dem++;
}
}
}
return (float)(S/dem);
}
327 Tổng các giá trị nằm trên biên của ma trận
int TongBien(int a[][100], int n, int m)
{
int S=0;
for (int i=0; i<m; i++)
{
S = S+ a[0][i] + a[n-1][i];
}
for (i=1; i<n-1; i++)
{
S = S+ a[i][0] + a[i][m-1];
}
return S;
}
328 Trung bình nhân các số dương ma trận thực
float TBNhanDuong(float **a, int n, int m)
{
float T=1;
int dem =0 ;
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
if (a[i][j]>0)
{
T*=a[i][j];
dem++;
}
}
}
return pow(T,1.0/dem);
}

329 Biến đổi ma trận bằng cách thay các giá trị âm bằng giá trị tuyệt đối của nó
void BienDoiMaTran(int a[][100], int n, int m)
{
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
a[i][j] = abs(a[i][j]);
}
330 Biến đổi ma trận thực bằng cách thay các giá trị bằng giá trị nguyên gần nó nhất
float XuLy(float n)
{
float PhanNguyen = (int)(n);
float PhanLe = n - PhanNguyen;
if (PhanLe < 0,5)
{
return PhanNguyen;
}
return PhanNguyen+1;
}
void BienDoiMaTran(float a[][100], int dong, int cot)
{
for (int i=0;i<dong; i++)
{
for (int j=0; j<cot; j++)
{
a[i][j] = XuLy(a[i][j]);
}
}
}
331 Tổng các giá trị trên 1 dòng ma trận thực
float TongDongX(int a[], int m) //chuy?n a[x] , x là dòng mà b?n c?n tính t?ng
{
float S=0;
for (int i=0; i<m; i++)
S+=a[i];
return S;
}
332 Tổng giá trị lẻ trên 1 cột ma trận nguyên
int TongLeCotY(int a[][100], int n, int m, int y) //y là s? c?t c?n tính
{
int S=0;
for (int i=0; i<n; i++)
if (a[i][y]%2 ! =0)
S+=a[i][y];
return S;
}
333 Tổng các số hoàn thiện trong ma trân số nguyên
int sohoanthien(int n)
{
int tong=0;
for (int i=1 ; i<n; i++)
if(n%i==0)
tong = tong + i;
if (tong == n)
return 1;

