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

Scrieţi programul C/C++ care citeşte de la tastatură două valori naturale m şi n (1 - elementele liniei 1 şi 2 sunt egale cu 0;
- elementele liniei 3 şi 4 sunt egale cu 1;
- elementele liniei 5 şi 6 sunt egale cu 0; şi aşa mai departe.

Matricea astfel obţinută se va afişa pe ecran, câte o linie a matricei pe o linie a ecranului, cu câte un spaţiu între elementele fiecărei linii.

Exemplu: pentru m = 7 şi n = 5 se va afişa matricea alăturată.

00000
00000
1 1 1 1 1
1 1 1 1 1
00000
00000
1 1 1 1 1

Răspunsuri la întrebare

Răspuns de Sergetec
1

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

using namespace std;

int main() {

   int n, m;

   cin >> n >> m;

   bool unu = false, zero = true;

   for (int i = 1; i <= n; ++i) {

       if (i % 2 != 0 && i != 1 && zero) {

           zero = false;

           unu = true;

       }

       else if (i % 2 != 0 && unu) {

           unu = false;

           zero = true;

       }

       for (int j = 1; j <= m; ++j) {

           if (zero) {

               cout << 0;

           }

           else {

               cout << 1;

           }

       }

       cout << '\n';

   }

   return 0;

}

Explicatie:

In cazul acesta eu doar am afisat 0 respectiv 1. Am folosit 2 variabile booleane unu si zero, incepand cu zero = true si unu = false, dupa aceea le schimb corespunzator.

Daca chiar se doreste creearea propriu-zisa a tabloului bidimensional, atunci se poate face asta atribuind la m[i][j] = 0 respectiv 1 in al 2 lea for, iar la sfarsitul programului sa se afiseze.


VxF: De ce unu? Dacă ștergi toate apariţiile variabilei unu, programul tot funcționează corect. (De altfel eu as fi făcut și fără zero, dar asta deja intră la categoria moft personal:
for (int i = 0; i < n; ++i) {
for (int j = 1; j <= m; ++j) {
cout << i % 4 / 2;
}
cout << '\n';
}
)
Sergetec: Felicitari! Se poate face si asa, evident. Eu am ales o rezolvare mai "scolareasca" si usor de inteles pentru incepatori in programare.
Alte întrebări interesante