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

1.
Scrieţi un program C/C++ care citeşte de la tastatură numerele naturale m şi n din intervalul
[1,100], apoi construieşte în memorie şi afişează pe ecran un tablou bidimensional cu m
linii şi n coloane astfel încât prin parcurgerea acestuia linie cu linie de sus în jos şi fiecare
linie de la stânga la dreapta, se obţin în ordine descrescătoare toate numerele naturale de
la 1 la m*n, ca în exemplu.
Fiecare linie a tabloului este afişată pe câte o linie a ecranului, elementele
aceleiaşi linii fiind separate prin câte un spaţiu.
Exemplu: pentru m=4 şi n=3 se va construi şi afişa tabloul alăturat.
12 11 10
9 8 7
6 5 4
3 2 1


2.
Un tablou bidimensional A cu m linii şi n coloane (1≤m≤100, 1≤n≤100) conţine pe prima
linie numerele 1,2,...,n, iar pe prima coloană numerele 1,2,...,m. Celelalte elemente
ale tabloului sunt date de relaţia: A[ i ][ j ]=A[ i-1 ][ j ]+A[ i] [ j-1 ]. Scrieţi un program C/C++ care citeşte de la tastatură numerele m şi n şi afişează pe ecran elementul de pe ultima linie şi ultima coloană a tabloului.
Exemplu: pentru m=3 şi n=4 se va afişa 25
deoarece elementele tabloului A sunt:
1 2 3 4
2 4 7 11
3 7 14 25

Răspunsuri la întrebare

Răspuns de antonii
2
int table[100][100];
void Nr_1(){
   int m,n;

   cin>>m>>n;
     for(int i=m;i>0;i--){
       for(int j=i*n;j>(i-1)*n;j--){
             table[m-i][i*n-j]=j;
             cout<<j;
        }
    cout<<endl;
   }

   cout<<endl;
      //Code to check the memory(table array)
      for(int i=0;i<m;i++){
       for(int j=0;j<n;j++){
             cout<<table[i][j];
        }
    cout<<endl;
   }
}


void Nr_2(){
     int m,n;
     cin>>m>>n;

     for(int i=1;i<=n;i++)
            table[1][i]=i;

     for(int i=1;i<=m;i++)
            table[i][1]=i;
     cout<<Take_Val_Of(n,m);
}

int Take_Val_Of(int x,int y){
     //Permutari
     if (table[y][x]==0) {
            return Take_Val_Of(x-1,y)+Take_Val_Of(x,y-1);
      }else{
            return table[y][x];
      }
}
Răspuns de blindseeker90
3
1) 
#include <iostream>
using namespace std;

int main(){

int m,n,i,j,a[100][100];
cout<<"Introduceti dimensiunile matricei:";
cin>>m>>n;
cout<<"Matricea este:\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
a[i][j]=m*n-i*n-j;
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
2)
#include <iostream>
using namespace std;

int main(){
int m,n,i,j,a[100][100];
cout<<"Introduceti dimensiunile matricei:";
cin>>m>>n;
cout<<"Matricea este:\n";
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(i==0){
a[i][j]=j+1;
}
else if(j==0){
a[i][j]=i+1;
}
else{
a[i][j]=a[i-1][j]+a[i][j-1];
}
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"Ultimul element al matricei este:"<<a[m-1][n-1];
return 0;
}
Alte întrebări interesante