Informatică, întrebare adresată de miaunel0001, 9 ani în urmă

Scrieţi un program care citeşte de la tastatură un număr natural n şi 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*n*n], 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*n*n].
Exemplu
1 3 5 7
8 6 4 2
9 11 13 15
16 14 12 10


Salvatorul2017: Exel din suita Office nu te.ar ajuta?

Răspunsuri la întrebare

Răspuns de nuamporecla1432
0
int
cin>>n
l=1
for(i=1;i<=2*n;i++)
   for(j=1;j<=2*n;j++)
       if(i%2!=0)
           a[i][j]=l
           l=l+2
       else
           m=l
           a[i][j]=m+1
           m=m-2
           l=l+2
          
  
Răspuns de DenM
1
Asta ar trebui sa functioneze pe ce ai scris acolo(daca iti trebuie program c++)
Nota 2*n inseamna n, deci sper ca asta iti trebuie
#include <iostream>

using namespace std;
int n,k=1,l=2,p=1,a[25][25],i,j;
int main()
{cin>>n;
n*=2;//calculez 2*n
for(i=1;i<=n;i++)
{if(i%2) for(j=1;j<=n; j++) {a[i][j]=k; k+=2;}
    else for(j=n;j>=1;j--) {a[i][j]=l; l+=2;}
}


for(i=1;i<=n;i++)
{for(j=1;j<=n;j++) cout<<a[i][j]<<' ';
cout<<endl;}

    return 0;
}


Alte întrebări interesante