0.cộng ma trận


Submit solution

Points: 1 (partial)
Time limit: 1.0s
Memory limit: 98M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Viết chương trình:

  1. Nhập vào 2 ma trận số nguyên cấp m x n .

Trong đó:

Dòng đầu tiên là cấp của ma trận m n (m, n<=100)

m dòng tiếp theo, mỗi dòng chứa n số nguyên có dấu (-32000 < a < 32000)

  1. Lưu trữ các ma trận sử dụng con trỏ và cấp phát bộ nhớ động. Cho phép người dùng nhập số phần tử của hai ma trận và các phần tử của ma trận. Tổ chức chương trình thành các chương trình con.

  2. Cộng 2 ma trận, in kết quả dưới dạng m dòng, mỗi dòng n phần tử. Độ rộng mỗi số liệu là 7 ký tự.

VD:

INPUT:

3 2

6886 11016

3288 11454

1436 11112

-2444 3954

4668 -3700

-1998 -6479

OUTPUT:

4442 14970

7956 7754

-562 4633


Comments


  • 0
    Manh_KHMT_K64  commented on Nov. 24, 2023, 1:00 p.m.
    #include <stdio.h>
    int main(){
        int m,n;
        scanf("%d%d",&m,&n);
        int a[m][n],b[m][n],c[m][n];
        for (int i=0;i<m;i++){
            for (int j=0;j<n;j++) scanf("%d",&a[i][j]);
        }
        for (int i=0;i<m;i++){
            for (int j=0;j<n;j++) scanf("%d",&b[i][j]);
        }
        for (int i=0;i<m;i++){
            for (int j=0;j<n;j++){
                c[i][j]=a[i][j]+b[i][j];
            }
        }
        for (int i=0;i<m;i++){
            for (int j=0;j<n;j++) printf("%d ",c[i][j]);
            printf("\n");
        }
        return 0;
    }

  • 0
    vietcong666  commented on Sept. 8, 2021, 3:34 p.m.

    học dốt nhưng mọi người có thể tham khảo cấp phát bộ nhớ động và con trỏ

    #include <bits/stdc++.h>
    using namespace std;
    struct matran{
        int m,n;
        long int **tp;
    };
    void nhap(matran &a,matran &b){
        cin >> a.m >> a.n;
        b.m=a.m;
        b.n=a.n;
        a.tp=new long int*[a.m+1*a.n+1];
        for(int i=0;i<a.m;i++){
            a.tp[i]=new long int[a.m+1];
            for(int j=0;j<a.n;j++){
                cin >> a.tp[i][j];
            }
        }
        b.tp=new long int*[a.m+1*a.n+1];
        for(int i=0;i<b.m;i++){
            b.tp[i]=new long int[b.m+1];
            for(int j=0;j<b.n;j++){
                cin >> b.tp[i][j];
            }
        }
    }
    matran cong(const matran &a, const matran &b){
        matran c;
        c.m=a.m;
        c.n=a.n;
        c.tp=new long int*[c.m+1*c.n+1];
        for(int i=0;i<c.m;i++){
            c.tp[i]=new long int[c.m+1];
            for(int j=0;j<c.n;j++){
                c.tp[i][j]=a.tp[i][j]+b.tp[i][j];
            }
        }
        return c;
    }
    void xuat(matran a){
        for(int i=0;i<a.m;i++){
            for(int j=0;j<a.n;j++){
                cout << a.tp[i][j] << " ";
            }
            cout << endl;
        }
    }
    int main(){
        matran a,b,c;
        nhap(a,b);
        c=cong(a,b);
        xuat(c);
    }