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


Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (1≤n≤10) apoi
construieşte în memorie o matrice cu 2*n linii şi 2*n coloane, numerotate de la 1 la 2*n,
astfel încât parcurgând doar liniile impare ale matricei de sus în jos şi fiecare linie impară de
la stânga la dreapta se obţin în ordine strict crescătoare toate numerele impare cuprinse în
intervalul [1,4*n2
], iar parcurgând doar liniile pare ale matricei de sus în jos şi fiecare linie
pară de la dreapta la stânga se obţin în ordine strict crescătoare toate numerele pare
cuprinse în intervalul [1,4*n2
], ca în exemplu.
Programul afişează pe ecran matricea obţinută, câte o linie a matricei
pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin
câte un spaţiu.
Exemplu: pentru n=2 se obţine matricea alăturată:
1 3 5 7
8 6 4 2
9 11 13 15
16 14 12 10

Răspunsuri la întrebare

Răspuns de rotti321ot4wir
4

Răspuns:

#include <iostream>

using namespace std;

int main() {

 int a[15][15]={},n,i,j,ki=1,kp=2;

 cin>>n;

 for(i=1;i<=2*n;i+=2){  ///liniile impare se completeaza cu valori impare

     for(int j=1;j<=2*n;j++){ /// de la stg --> drp

         a[i][j]=ki;

         ki+=2;     /// sau ki=ki+2

     }

 }

 for(i=2;i<=2*n;i+=2){  ///liniile pare se completeaza cu val pare

     for(int j=2*n;j>=1;j--){  ///de la drp --> stg

         a[i][j]=kp;

         kp+=2;

     }

 }

 for(i=1;i<=2*n;i++){

     for(int j=1;j<=2*n;j++){

         cout<<a[i][j]<<" ";

     }

     cout<<endl;

 }

 return 0;

}

Explicație:

Explicatiile le gasesti in comentarii

Alte întrebări interesante