[Tự học lập trình C/C++] Nhập ma trận và tính toán trong ma trận.

Share:

Bài tập

Viết chương trình C++ để tính tổng mỗi hàng, mỗi cột của một ma trận có kích cỡ n x m, và nếu là ma trận vuông thì tính tổng đường chéo.

Lời giải

Dưới đây là chương trình C++ để giải bài tập trên. Để tính tổng mỗi hàng và mỗi cột của ma trận, bạn sử dụng vòng lặp FOR. Để xử lý tình huống thứ hai, bạn sử dụng kết hợp lệnh IF-ELSE và vòng lặp FOR.
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 clrscr();
  int A[10][10],m,n,x,y,sum=0;
  //Tao mot ma tran A
  cout << "Nhap so hang va so cot cua ma tran A : \n";
  cin>>n>>m;
  cout << "Nhap cac phan tu cua ma tran A : \n";
   for(x=1;x<n+1;++x)
     for(y=1;y<m+1;++y)
     cin>>A[x][y];
     //Tim tong gia tri cua hang
   for(x=1;x<n+1;++x)
    {
     A[x][m+1]=0;
     for(y=1;y<m+1;++y)
     A[x][m+1]=A[x][m+1]+A[x][y];
    }
   //Tim tong gia tri cua cot
   for(y=1;y<m+1;++y)
    {
    A[n+1][y]=0;
    for(x=1;x<n+1;++x)
    A[n+1][y]+=A[x][y];
    }
   cout << "\nMa tran A: Tong hang (cot cuoi)" << " va Tong cot (hang cuoi) : \n";
   for(x=1;x<n+1;++x)
   {
    for(y=1;y<m+2;++y)
    cout << A[x][y] << "     ";
    cout << "\n";
    }
   //In tong moi hang
   x=n+1;
   for(y=1;y<m+1;++y)
   cout << A[x][y] << "     ";
   cout << "\n";
   if(m==n)
   {
   for(x=1;x<m+1;x++)
    for(y=1;y<n+1;y++)
      if(x==y)
       sum+=A[x][y];
      else
       if(y==m-(x+1))
       sum+=A[x][y];
    }
   cout << "Tong cac phan tu tren duong cheo la : " << sum << endl;
  
   return 0;
   }
Quay lại>>>