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

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 Sergetec
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