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
#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;
}