Informatică, întrebare adresată de bogdancojocaru02, 8 ani în urmă

Scrieti un program in C++ care citeste dintr-un fisier doua numere naturale nelule n si m apoi construieste si tipareste pe ecran o matrice cu n linii si m coloane astfel incat parcurgand tabloul linie cu linie de sus in jos si fiecare linie de la stanga la dreapta sa se obtina sirul primelor n*m patrate perfecte impare ordonat strict crescator

Răspunsuri la întrebare

Răspuns de CristiCode
1

#include <iostream>

#include <fstream>

using namespace std;

int main() {

   ifstream in("matrice.txt");

   int n, m;  // numarul de linii si de coloane al matricei

   in >> n >> m;

   int a[n][m];  // matricea

   int linie = 0;  // contorul de linii

   int coloana = 0;  // contorul de coloane

   

   for (int i = 1;; i++) {  // generam numaratoarea

       if (i * i % 2 != 0) {  // verificam daca este patrat perfect si impar

           if (linie == n) break;

           a[linie][coloana] = i * i;  

           coloana++;  

           if (coloana == m) {  

               coloana = 0;  

               linie++;  

           }

       }

   }

    for (int ln = 0; ln < n ; ln++) {  // afisarea matricei pe ecran celula cu celula, rand cu rand, incepand din stanga sus catre dreapta jos. Fiecare rand e urmat de un newline.

        for (int col = 0; col < m ; col++) {

           cout << a[ln][col] << " ";

       }

       cout << endl;

   }

   in.close();

   return 0;  

}

Alte întrebări interesante