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


Scrieţi un program C++ care citeşte de la tastatură un număr natural nenul cu exact 4 cifre,
construieşte în memorie şi afişează apoi pe ecran o matrice având 4 linii şi 4 coloane, completată
astfel: elementele de pe prima coloană a matricei vor fi toate egale cu cifra miilor numărului dat,
elementele de pe a doua coloană a matricei vor fi toate egale cu cifra sutelor numărului dat, elementele
de pe a treia coloană a matricei vor fi toate egale cu cifra zecilor numărului dat, iar elementele de pe a
patra coloană a matricei vor fi toate egale cu cifra unitatilor numărului dat. Matricea va fi afişată pe ecran,
câte o linie a matricei pe câte o linie a ecranului, iar elementele fiecărei linii vor fi separate prin câte un
spaţiu.
Exemplu: dacă se citeşte numărul 9531, matricea construită va fi cea de mai jos.
9 5 3 1
9 5 3 1
9 5 3 1
9 5 3 1

Pana acum am scris programul asta:

#include
using namespace std;
int main()
{
int a[20][20];
int m, n,j,i,x;
cin>>m>>n>>x;
for (j=n; j>=1; j--) {
for (i=m; i>=1; i--) {
a[i][j]=x%10;
cout<<' '< cout< }
x/=10;
}
return 0;
}
Dar imi arata toate elementele pe o singura coloana (ca in poza). Cum sa fac sa ma duc pe coloana din fata?

Anexe:

Răspunsuri la întrebare

Răspuns de S0unds
1
Nu era nevoie sa te complici cu 2 de for.
Iei un singur for si mergi pe fiecare coloana in parte:

#include <iostream>
using namespace std;

int main()
{
unsigned long n;
int a[5][5];
cin>>n;
for(int i=0;i<4;i++)
{
a[i][0]=n/1000;
a[i][1]=(n/100)%10;
a[i][2]=(n/10)%10;
a[i][3]=n%10;
}
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
cout<<a[i][j];
cout<<endl;
}
return 0;
}

danielaalexandra: doamna profesoara a zis sa facem cu 2 de for
danielaalexandra: am rezolvat. mersi oricum
Alte întrebări interesante