Yêu cầu bài toán như sau: nhập 2 ma trận a và b. Tính tổng 2 ma trận và lưu vào ma trận mới là c, sau đó tìm max của ma trận c. Mã: #include<stdio.h> #include<conio.h> #define max1 50 int ln(int z[][max1],int n) { int i,j,max; max=z[0][0]; for(i=0;i<n;i++) for(j=0;j<n;j++) max=(max>z[i][j])?max:z[i][j]; return max; } void main() { clrscr(); int b[max1][max1],a[max1][max1],c[max1][max1],n,x,y,g,h,i,j; scanf("%d",&n); printf("Nhap ma tran a: \n"); for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); printf("\n"); printf("Nhap ma tran b: \n"); for(g=0;g<n;g++) for(h=0;h<n;h++) scanf("%d",&b[g][h]); for(x=0;x<n;x++) for(y=0;y<n;y++) c[x][y]=a[x][y]+b[x][y]; printf("Ma tran A: \n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%3d",a[i][j]); printf("\n"); } printf("\nMa tran B: \n"); for(g=0;g<n;g++) { for(h=0;h<n;h++) printf("%d",b[g][h]); printf("\n"); } printf("\nMa tran moi: \n"); for(x=0;x<n;x++) { for(y=0;y<n;y++) printf("%3d",c[x][y]); printf("\n"); } printf("Max cua ma tran moi la %d",ln(c,n)); getch(); } bài vừa rồi mình làm theo cách bình thường nên hơi dài. Bạn nào muốn rút ngắn lại có thể dùng các hàm để chương trình sáng sủa hơn: Mã: #include<stdio.h> #include<conio.h> #define max 50 int n; int nhap(int t[][max]) { for(int i=0;i<n;i++) for(int j=0;j<n;j++) scanf("%d",&t[i][j]); } void xuat(int t[][max]) { for(int i=0;i<n;i++) { for(int j=0;j<n;j++) printf("%3d",t[i][j]); printf("\n"); } printf("\n"); } void tong(int a[][max],int b[][max],int c[][max]) { for(int i=0;i<n;i++) for(int j=0;j<n;j++) c[i][j]=a[i][j]+b[i][j]; } int ln(int h[][max],int n) { int lonnhat; for(int i=0;i<n;i++) lonnhat=(lonnhat>h[i][j])?lonnhat:h[i][j]; return lonnhat; } main() { clrscr(); int a[max][max],b[max][max],c[max][max]; scanf("%d",&n); printf("Nhap ma tran A: "); nhap(a); printf("Nhap ma tran B: "); nhap(b); printf("\n"); xuat(a); xuat(b); tong(a,b,c); xuat(c); printf("\n"); lonnhat(c,n); getch(); }
Bài thì giả hay nhưng nhìn sơ qua có một số lỗi. hàng thứ 10 có đoạn max=(max>a[j])?max:a[j]; hình như là z[j] chứ không phải a[j] ,xem lại bạn nhé !! thank nhìu
Bảo bạn còn sai! đéo đỡ nổi max=(max>a[j])?max:a[j]; lấy đâu ra cái này đây trong bài thằng kia ko có đâu!! Bản gốc nó ghi là PHP: int ln(int h[][max],int n) { int lonnhat; for(int i=0;i<n;i++) lonnhat=(lonnhat>h[i][j])?lonnhat:h[i][j]; return lonnhat; } Thêm vong lặp for : for(int j=0;j<n;j++) là được, @sunboy: trước khi comment lên coi kỹ nhá!! PHP: int ln(int h[][max],int n) { int lonnhat=h[0][0]; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { //C1: lonnhat=(lonnhat>h[i][j])?lonnhat:h[i][j]; //C2: if(lonnhat<h[i][j]) { lonnhat=h[i][j]; } } } printf("Max cua ma tran Moi la: %d",lonnhat); return 0; } Dám chắc ko phải anh bạn làm bài này, thấy nó nói thế mà ko biết xem lại để bảo, đến tận hôm " getdate() " tao phải comment lại!!