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

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (n∈[2,20]) şi
construieşte în memorie un tablou bidimensional cu n linii şi n coloane în care:
- ultima coloană conţine numerele naturale din intervalul [1,n], în ordine strict
descrescătoare;
- toate elementele primei linii au valoarea n;
- oricare alt element este obţinut prin însumarea celor două elemente vecine cu el, unul
aflat pe coloana din dreapta, pe aceeaşi linie cu el, iar celălalt pe aceeaşi coloană cu el,
dar pe linia anterioară, ca în exemplu.
Programul afişează pe ecran tabloul obţinut, fiecare linie a tabloului pe câte o linie a
ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Exemplu: pentru n=4 pe ecran se afişează:
4 4 4 4
15 11 7 3
35 20 9 2
65 30 10 1


Este corect algoritmul acesta:

{int a[100][100],n,k,i,j,aux;
cin>>n>>k;
for(i=1;i<=n;i++)

for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if(a[k][i] {aux=a[k][i];
a[k][i]=a[k][j];
a[k][j]=aux;
}
for(int i=1;i<=n;i++)
{
a[i][n]=n;
}


KindaBored: Tu trebuie sa citeste doar n de la tastatura, de ce ai si k?

Răspunsuri la întrebare

Răspuns de KindaBored
4
Nu, acel algoritm nu este corect.
#include <iostream>
using namespace std;
int n,a[21][21],i,j;
int main()
{
    cin>>n;
    for (i=1;i<=n;i++)
    {
        a[1][i]=n;
        a[n+1-i][n]=i;
    }
    for (i=2;i<=n;i++)
        for (j=n-1;j>=1;j--)
    {
        a[i][j]=a[i-1][j]+a[i][j+1];
    }
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=n;j++)
            cout<<a[i][j]<<" ";
        cout<<endl;
    }


}



ginomarian2: Tanks m8te am vz understand am făcut greseala
Alte întrebări interesante