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

Cum pot transfera elementele unei matrici intr-o matrice in felul acesta?
Exemplu :
vectorul - 157 223 542
matricea -
1 5 7
2 2 3
5 4 2


pmarian98: elementele vectorului tau vor avea intotdeauna 3cifre ???
FizzyPlays: Nu neaparat, decat am oferit un exemplu
1Viserys: stii cumva daca se garanteaza faptul ca vor fi intotdeauna suficiente cifre pentru a construi o matrice completa? si daca matricea va fi intotdeauna patratica?
1Viserys: pot sa iti ofer o idee de rezolvare, de exemlpu poti construi un alt vector in care vei memora cifrele, din el faci rost de numarul de cifre care vor fi introduse in matrice, afli apoi numarul de linii si de coloane si apoi le introduci in matrice. nu pot oferi o rezolvare completa fara ceva mai multe detalii (eventual numarul total de cifre sau numarul maxim de elemente din primul vector, numarul maxim de cifre pentru fiecare numar din primul vector etc.
FizzyPlays: Dimensiunea vectorului este "n" - care se citeste de la tastatura. Nu este neaparat ca matricea sa fie una patratica.
Se pot oferi si valori diferite la tastatura precum
13 650 1234, iar matricea care trebuie sa se formeze sa fie
0 0 1 3
0 6 5 0
1 2 3 4

Răspunsuri la întrebare

Răspuns de inb4
0

gen faci sa le scrie pe alea din vector si dupa gen le scrii cu cout cu spatiu si endl si mai ai si un contor si intreab-o pe profa de info ca stie ea si iti da 10 ca o intrebi


1Viserys: 1. nu trebuie pur si simplu scrise cu cout din vector, trebuie construita o matrice
1Viserys: 2. " intreab-o pe profa de info ca stie ea si iti da 10 ca o intrebi" nu rezolva problema :D
Răspuns de 1Viserys
1

#include <iostream>

using namespace std;

int nrCifre(int x)

{

int n;

while(x>0)

{

n++;

x=x/10;

}

return n;

}


int main()

{

int n;

cin>>n;

int v[n];

int nr_coloane=0;

int nr_linii=n;

for(int i=0; i<n; i++)

{

cin>>v[i];

int k=nrCifre(v[i]);

if(k>nr_coloane) nr_coloane=k;

}

int M[nr_linii][nr_coloane];

for (int i=0; i<nr_linii; i++)

{

for (int j=nr_coloane-1; j>=0; j--)

{

if(v[i]!=0){

M[i][j]=v[i]%10;

v[i]=v[i]/10;}

else M[i][j]=0;

}

}


for(int i=0; i<nr_linii; i++)

{

for (int j=0; j<nr_coloane; j++)

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

cout<<endl;

}


return 0;

}


FizzyPlays: Mersi, însă încearcă pe viitor să nu folosești nume de variabile așa de lungi, de obicei încurcă lumea :))))
1Viserys: scopul meu a fost sa transmit foarte clar ce vrea sa insemne fiecare variabila importanta, ca sa nu existe confuzii. intr-un program simplu precum acesta nu e nevoie neaparat dar m-am obisnuit cu numele sugestive pentru ca am la facultate proiecte in care scriu si 2000 de linii de cod si acolo n-ai sansa cu litere random.
Alte întrebări interesante