Scrieți un program C/C++ care citește de la tastatură două numere naturale din intervalul [2,102],
m și n, și construiește în memorie un tablou bidimensional cu m linii și n coloane, cu proprietatea că
parcurgându-l linie cu linie de sus în jos și fiecare linie de la stânga la dreapta, se obține șirul primelor
m*n pătrate perfecte pare, ordonat strict descrescător, ca în exemplu. Elementele tabloului obținut se afișează pe ecran, fiecare linie a tabloului pe câte o linie
a ecranului, valorile de pe aceeași linie fiind separate prin câte un spațiu. Exemplu: pentru m=2, n=3 se obține tabloul alăturat. (10p. )
100 64 36
16 4 0.
Răspunsuri la întrebare
Răspuns de
0
Salut!
Ai rezolvarea la problema in C++ mai jos
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n, m, a[501][501], val = 0, d = 2;
cin >> n >> m;
for (int i = n; i >= 1; --i)
{
for (int j = m; j >= 1; --j)
{
if (i == n && j == m)
{
a[i][j] = val;
continue;
}
val = d * d;
if (d == sqrt(val))
{
a[i][j] = val;
}
d += 2;
}
}
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= m; ++j)
{
cout << a[i][j] << " ";
}
cout << '\n';
}
return 0;
}
Explicatie:
- Pentru a obtine numerele in ordine descrescatoare putem pur si simplu sa o construim invers, de la n la 1 si de la m la 1
- Ti-am atasat si fisierul mai jos
Anexe:
Alte întrebări interesante
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă