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

Variabilele i și j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii și 7 coloane, numerotate începând de la 0, cu elemente numere întregi, inițial toate egale cu 0. Fără a utiliza alte variabile decât cele menționate, scrieți o secvență de instrucțiuni prin care se transformă în memorie tabloul, astfel încât orice element aflat pe prima linie sau pe ultima coloană să aibă valoarea 1 și oricare alt element din tablou să fie egal cu ultima cifră a sumei celor două elemente alăturate lui, aflate pe aceeași linie dar pe coloana din dreapta, respectiv pe aceeași coloană, dar pe linia anterioară.

1 1 1 1 1 1 1
7 6 5 4 3 2 1
8 1 5 0 6 3 1
4 6 5 0 0 4 1
0 6 0 5 5 5 1

Răspunsuri la întrebare

Răspuns de bastysmc
3

Am gasit o solutie, nu e cea mai eficienta, probabil se face mult mai usor, dar momentan asta e singura care mi-a mers :

for(i=0;i<5;i++)

   for(j=0;j<7;j++)

        { if (i==0 || j==6)

             a[i][j]=1;

         if (i==1)

             a[i][j]=7-j;

         if (j==5)

              a[i][j]=i+1;  }

   for(i=0;i<5;i++)

    { for(j=0;j<7;j++)

         { if(a[i][j]==0 && a[i-1][j]!=0 && a[i][j+1]!=0)

                    a[i][j]=(a[i-1][j]+a[i][j+1])%10;  }

       for(j<7; j>=0; j--)

           if(a[i][j]==0)

             a[i][j]=(a[i-1][j]+a[i][j+1])%10; }


cristealucap96y1x: nu functioneaza, am incercat si eu =)
bastysmc: da acum observ, ca pe coloana intai afiseaza 4 de 7 in loc de 7 8 4 si 0. Mna nu i-am dat de cap, asta e singura metoda ce se aproprie de raspuns :)
Gouj: for(i=0;i<5;i++)
for(j=6;j>=0;j--)
if(i==0||j==6)
a[i][j]=1;
else
a[i][j]= (a[i][j+1]+a[i-1][j])%10;
Alte întrebări interesante