BİLGİ SAYAMIYORUM beta

C++ da, 2 boyutlu listeler, matrisler, birbirleriyle nasıl toplanır?

0

C++ da listelerle uğraşmaya başladıktan sonra, 2 boyulu listelerle yani matrislerle uğraşmanız da yüksek ihtimalli bir olay. Satırlar ve kolonlardan oluşan bu yapılardan iki tanesini toplamak, o matrislerin içerdikleri öğeleri konum itibariyle onlara karşılık gelen karşı öğesiyle toplamak demek oluyor. Aslında bu listeler size direk geliyorsa yapacak işlem sayınız fazlasıyla az. O sebeple listelerin içeriğini de kullanıcıdan aldığımız bir örnek yapmayı tercih ediyorum.

Bunun için kullanıcıdan listelerin aynı olan kolon ve sayısını belirlemesini sonra da elemanları tek tek girmesini istiyoruz. Ardından bu listelerin elemanlarını toplayıp sonucu kullanıcıya çıkartıyoruz. İşlemlerimiz toplam 4 tane olan içiçe 2li for döngülerine sahip olduğu için aslında fazlasıyla masraflı ama yukarda belirlediğim şekilde 100 gibi bir üst limitiniz varsa çok problem olmayacaktır:

#include <iostream>
using namespace std;

int main(){
     int satirSayisi, kolonSayisi, ilkListe[100][100], ikinciListe[100][100], toplamListe[100][100], i, j;

     cout << "100den küçük bir satir sayisi giriniz: ";
     cin >> satirSayisi;
     cout << "100den küçük bir kolon sayisi giriniz: ";
     cin >> kolonSayisi;

     cout << endl << "Ilk matrisin elemanlarini giriniz: " << endl;
     for(i = 0; i < satirSayisi; ++i){
          for(j = 0; j < kolonSayisi; ++j){
               cout << "Ilk listenin elemanlari:" << i + 1 << j + 1 << " : ";
               cin >> ilkListe[i][j];
          }
     }

     cout << endl << "Ikinci matrisin elemanlarini giriniz: " << endl;
     for(i = 0; i < satirSayisi; ++i){
          for(j = 0; j < kolonSayisi; ++j){
               cout << "Ikinci listenin elemanlari:" << i + 1 << j + 1 << " : ";
               cin >> ikinciListe[i][j];
          }
     }

     // Toplama
     for(i = 0; i < satirSayisi; ++i){
          for(j = 0; j < kolonSayisi; ++j){
               toplamListe[i][j] = ilkListe[i][j] + ikinciListe[i][j];
          }
     }

     // Sonuclar
     cout << endl << "Iki matrisi toplamiyla olusan yeni matris: " << endl;
     for(i = 0; i < satirSayisi; ++i){
          for(j = 0; j < kolonSayisi; ++j){
               cout << toplamListe[i][j] << " ";
               if(j == kolonSayisi - 1){
                    cout << endl;
               }
          }
     }
     return 0;
}

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER