Ma trận trong C/C++
#include <stdio.h> #include <conio.h> #include <math.h> void nhapmt(int a[9][9],int m , int n) { for ( int i=0;i<m;i++) for (int j=0;j<n;j++) { printf("\ nhap a[%d]:[%d]",i,j); scanf("%d,%d",&a[i][j]); } } void xuat_mt(int a[9][9],int m , int n) { for (int i=0;i<m;i++) {printf("\n"); for (int j=0;j<n;j++) { printf("%d ",a[i][j]); // printf("\n"); } } } // max tren toan ma tran void maxmatran(int a[9][9],int m , int n) { int max; max= a[0][0]; for (int i=0;i<m;i++) { for (int j=0;j<n;j++) { if( max < a[i][j] ) max=a[i][j]; } } printf("\n phan tu lon nhat tren ma tran la %d : ",max); } //max theo tung hang void max_hang(int a[9][9],int m , int n) { int maxhang,max; for (int i=0;i<m;i++) { max=a[i][0]; for (int j=0;j<n;j++) { if( max < a[i][j] ) max=a[i][j]; } printf(" max cua hang a[%d][0] la : ",i); printf("%d",max); printf("\n"); } } //max theo tung cot void max_cot(int a[9][9],int m , int n) { int maxcot,max; for (int j=0;j<m;j++) { max=a[0][j]; for (int i=0;i<n;i++) { if( max < a[i][j] ) max=a[i][j]; } printf(" max cua cot a[%d][0] la : ",i); printf("%d",max); printf("\n"); } } //chuyen vi ma tran void chuyen_vi(int a[9][9],int e[9][9],int m , int n) { int i,j; for (i=0;i<n;i++) for (j=0;j<m;j++) {a[i][j]=e[j][i]; } } // tim so nguyen to tren toan ma tran int snt(int a) { if (a<=1) return 0; for (int i=2;i<a;i++) if (a%i==0) return 0; else return 1; } //tich ma tran void tich_mt(int c[9][9],int a[9][9],int b[9][9],int m , int n) { int k; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { c[i][j]=0; for (k=0;k<m;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } } // cong 2 ma tran void cong_mt(int d[9][9],int a[9][9],int b[9][9],int m , int n) { int i, j; for (i=1;i<=m;i++) for (j=1;j<=n;j++) { d[i][j]=0; d[i][j]=a[i][j]+b[i][j]; } } //so hoan hao /*bool SoHoanHao(int n) { int temp=0; for (int i=1;i<n;i++) for (int j=0;j<m;j++) if (a[i][j]%i==0) temp=temp+i; if (temp==n) return true; else return false; } */ //chuong trinh chinh void main() { clrscr(); int a[9][9]; int a2[9][9]; int c[9][9]; int d[9][9]; int e[9][9]; int m,n,m2,n2; int i,j; int tong=0; printf("\n nhap so hang : "); scanf("%d",&m); printf("\n nhap so cot : "); scanf("%d",&n); nhapmt(a,m,n); printf("\n da nhap xong , bam enter de xem ket qua "); getch(); printf("\n ma tran ban vua nhap la : "); xuat_mt(a,m,n); printf("\n"); maxmatran(a,m,n); printf("\n"); max_hang(a,m,n); max_cot(a,m,n); //in ra cac so nguyen to trong ma tran printf("\n \n cac so nguyen to trong mang va vi tri cua chung \n"); for (i=1;i<=n;i++) for (j=1;j<=m;j++) if (snt(a[i][j])==1) printf("\n %d - a[%d][%d]",a[i][j],i,j); printf("\n bam enter de sap xep"); getch(); // sap xep lai ma tran //sap xep theo hang for(i=0;i<m;i++) for(j=0;j<n-1;j++) for(int k=j+1;k<n;k++) if (a[i][j]>a[i][k]) { int tam=a[i][j]; a[i][j]=a[i][k]; a[i][k]=tam; } // sap xep theo cot for(i=0;i<n;i++) for(j=0;j<m-1;j++) for( k=j+1;k<m;k++) if (a[j][i]>a[k][i]) { int tam=a[j][i]; a[j][i]=a[k][i]; a[k][i]=tam; } printf("\n ma tran sau khi sap xep tang dan la :\n"); for(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%d\t",a[i][j]); printf("\n"); } printf("\n ma tran chuyen vi"); //ma tran chuyen vi chuyen_vi(a,e,m,n); xuat_mt(e,m,n); printf("\n bam enter de xem tong cac phan tu tren duong cheo chinh "); getch(); //tinh tong duong cheo chinh for (i=0;i<n;i++) tong=tong+a[i][i]; printf("\n Tong cac phan tu tren duong cheo la: %d",tong); getch(); printf("\n nhap them ma tran 2 de tinh tiep :"); //nhap mt a2 printf("\n nhap so hang ma tran 2 : "); scanf("%d",&m2); printf("\n nhap so cot ma tran 2 : "); scanf("%d",&n2); nhapmt(a2,m2,n2); printf("\n ma tran ban vua nhap la : "); xuat_mt(a2,m2,n2); getch(); printf("\n Tong cua 2 ma tran "); //cong 2 ma tran cong_mt(d,a,a2,m,n); xuat_mt(d,m,n); printf("\n bam enter de tinh tich 2 ma tran"); getch(); //tich 2 ma tran tich_mt(c,a,a2,m,n); xuat_mt(c,m,n);//xuat ra ma tran c printf("\n bam enter de ket thuc chuong trinh"); getch(); //ket thuc chuowng trinh getch();