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

1.Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (2<n<20),construieşte în memorie şi afişează pe ecran o matrice cu n linii şi n coloane, numerotatede la 1 la n, în care fiecare element aflat pe o linie impară este egal cu suma dintre indiciiliniei şi coloanei pe care se află şi fiecare element aflat pe o linie pară este egal cu cel maimic dintre elementele aflate pe linia anterioară şi pe aceeaşi coloană cu el sau pe liniaanterioară şi pe una dintre coloanele vecine cu cea pe care se află el.5.Elementele matricei vor fi afişate pe ecran, câte o linie a matricei pecâte o linie a ecranului cu câte un spaţiu între elementele fiecărei linii.Exemplu: pentru n=5 se va afişa matricea alăturată.

2  3  4  5  6
2  2  3  4  5
4  5  6  7  8
4  4  5  6  7
6  7  8  9 10

2.
Scrieţi un program C/C++ care citeşte de la tastatură un număr natural cu exact 5 cifre şiconstruieşte în memorie o matrice pătrată cu 6 linii şi 6 coloane, numerotate de la 1 la 6,formată astfel:- elementele aflate pe diagonala principală sunt toate nule;- elementele de pe linia 1, aflate deasupra diagonalei principale precum şi elementele de pecoloana 1, aflate sub diagonala principală au toate valoarea egală cu cifra unităţilornumărului citit;- elementele de pe linia 2, aflate deasupra diagonalei principale precum şi elementele de pecoloana 2, aflate sub diagonala principală au toate valoarea egală cu cifra zecilor număruluicitit, şi aşa mai departe, ca în exemplu.

Matricea astfel construită va fi afişată pe ecran, câte o linie amatricei pe câte o linie a ecranului, elementele de pe aceeaşilinie fiind separate prin câte un spaţiu.Exemplu: dacă se citeşte numărul 28731 matricea construită vafi cea scrisă alăturat.
0 1  1  1  1  1
1 0 3 3 3 3
1 3 0 7 7 7
1 3 7 0 8 8
1 3 7 8 0 2
1 3 7 8 2 0

Răspunsuri la întrebare

Răspuns de blindseeker90
6
1)
#include <iostream>
using namespace std;

int main(){
int n,i,j,a[20][20];
cout<<"Introduceti numarul:";
cin>>n;
cout<<"Matricea este:\n";
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(i%2==1){
a[i][j]=i+j;
}
else{
if(j==1){
if(a[i-1][1]>a[i-1][2]){
a[i][j]=a[i-1][2];
}
else{
a[i][j]=a[i-1][1];
}
}
else if(j==n){
if(a[i-1][n-1]>a[i-1][n]){
a[i][j]=a[i-1][n];
}
else{
a[i][j]=a[i-1][n-1];
}
}
else{
if(a[i-1][j-1]<=a[i-1][j]&&a[i-1][j-1]<=a[i-1][j+1]){
a[i][j]=a[i-1][j-1];
}
else if(a[i-1][j]<=a[i-1][j-1]&&a[i-1][j]<=a[i-1][j+1]){
a[i][j]=a[i-1][j];
}
else{
a[i][j]=a[i-1][j+1];
}
}

}
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
2)
#include <iostream>
using namespace std;

int main(){

int a[6][6],n,i,j,k,cifra;
cout<<"Introduceti nr de 5 cifre:";
cin>>n;
for(k=0;k<6;k++){
a[k][k]=0;
cifra=n%10;
for(i=k+1;i<6;i++){
a[i][k]=cifra;
}
for(j=k+1;j<6;j++){
a[k][j]=cifra;
}
n=n/10;
}
cout<<"Matricea este:\n";
for(i=0;i<6;i++){
for(j=0;j<6;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}

andriesboss92: Multumesc :D
andriesboss92: Auzi, poti sa-mi explici te rog modul de functionare la problema 2, ca nu am inteles.
Alte întrebări interesante