Scrieţi un program care citeşte de la tastatură un număr natural n cu exact 5 cifre şi construieşte în memorie o matrice cu 6 linii şi 6 coloane ale cărei elemente vor primi valori după cum urmează:
elementele aflate pe diagonala principală sunt toate nule;
elementele de pe linia 1, aflate deasupra diagonalei principale precum şi elementele de pe coloana 1, aflate sub diagonala principală au toate valoarea egală cu cifra unităţilor lui n;
elementele de pe linia 2, aflate deasupra diagonalei principale precum şi elementele de pe coloana 2, aflate sub diagonala principală au toate valoarea egală cu cifra zecilor lui n;
…
elementele de pe linia 6, aflate deasupra diagonalei principale precum şi elementele de pe coloana 6, aflate sub diagonala principală au toate valoarea egală cu cifra zecilor de mii a lui n;
Programul afișează pe ecran matricea construită, 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.
Răspunsuri la întrebare
Răspuns de
1
#include<iostrea>
using namespace std;
int i,j,n,a[6][6]
void construire()
{
do{cin>>n;
}while(n<9999 || n>99999)
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
for(j=2;j<=6;j++)
a[1][j]=n%10;
for(i=2;i<=6;i++)
a[i][1]=n%10;
n=n/10;
for(j=3;j<=6;j++)
a[2][j]=n%10;
for(i=3;i<=6;i++)
a[i][2]=n%10;
n=n/10;
for(j=4;j<=6;j++)
a[3][j]=n%10;
for(i=4;i<=6;i++)
a[i][3]=n%10;
n=n/10;
for(j=5;j<=6;j++)
a[4][j]=n%10;
for(i=5;i<=6;i++)
a[i][4]=n%10;
n=n/10;
for(j=6;j<=6;j++)
a[5][j]=n%10;
for(i=6;i<=6;i++)
a[i][5]=n%10;
n=n/10;
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
if(i==j)
a[i][j]==0;
}
int main ()
{
construire();
for(i=1;i<=6;i++)
{
for(j=1;j<=6;j++)
cout<<a[i][j]<<" "<<"\n";
}
using namespace std;
int i,j,n,a[6][6]
void construire()
{
do{cin>>n;
}while(n<9999 || n>99999)
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
for(j=2;j<=6;j++)
a[1][j]=n%10;
for(i=2;i<=6;i++)
a[i][1]=n%10;
n=n/10;
for(j=3;j<=6;j++)
a[2][j]=n%10;
for(i=3;i<=6;i++)
a[i][2]=n%10;
n=n/10;
for(j=4;j<=6;j++)
a[3][j]=n%10;
for(i=4;i<=6;i++)
a[i][3]=n%10;
n=n/10;
for(j=5;j<=6;j++)
a[4][j]=n%10;
for(i=5;i<=6;i++)
a[i][4]=n%10;
n=n/10;
for(j=6;j<=6;j++)
a[5][j]=n%10;
for(i=6;i<=6;i++)
a[i][5]=n%10;
n=n/10;
for(i=1;i<=6;i++)
for(j=1;j<=6;j++)
if(i==j)
a[i][j]==0;
}
int main ()
{
construire();
for(i=1;i<=6;i++)
{
for(j=1;j<=6;j++)
cout<<a[i][j]<<" "<<"\n";
}
santoni2001:
Sper ca te-am ajutat si ca asa trebuie facut
Răspuns de
6
Incearca asta, are doar 3 for-uri deci e mult mai rapid (si scurt).
#include<iostream>
using namespace std;
int main()
{
char n[5];
int m[6][6];
cin >> n;
for(int i=0; i<6; i++)
for(int j=i; j<6; j++)
m[i][j] = m[j][i] = n[4-i] - '0';
for(int i=0; i<6; i++) m[i][i] = 0;
for(int i=0; i<6; i++) {
for(int j=0; j<6; j++)
cout << m[i][j] << ' ';
cout << '\n';
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
char n[5];
int m[6][6];
cin >> n;
for(int i=0; i<6; i++)
for(int j=i; j<6; j++)
m[i][j] = m[j][i] = n[4-i] - '0';
for(int i=0; i<6; i++) m[i][i] = 0;
for(int i=0; i<6; i++) {
for(int j=0; j<6; j++)
cout << m[i][j] << ' ';
cout << '\n';
}
return 0;
}
Alte întrebări interesante
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
10 ani în urmă
Limba română,
10 ani în urmă
Matematică,
10 ani în urmă