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

Programul functioneaza doar daca matricea are cu o linie si o coloana in plus adica este de 6x6 in loc de 5x5


Aveti idee de ce?


#include

using namespace std;

int main()
{
int a[6][6];
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++){
if(i==1&&j==1)a[i][j]=1;
else{
if(j>1) a[i][j]=a[i][j-1]+1;
else a[i][j]=a[i-1][5]+1;
}

}}
for(int i=1;i<=5;i++)
{

for(int j=1;j<=5;j++)
cout< cout< }
return 0;
}


boiustef: declaratia unui vector a[6] inseamn[ ca in vector se pot plasa 6 elemente indexate de la 0 la 5, adica elementele sunt a[0], a[1], ...,a[5].
Daca vei porni cu i de la 0 la 5, vei avea acele 6 elemente
for (i=0; i < 6; ++i)
boiustef: acelaşi lucru se întâmplă şi la matrice. Cu declaraţia a[6][6] de fapt ai la dispoziţie o matrice cu 6 linii şi 6 coloane, doar că elevor fi indexate de la 0 la 5
fstraz: dar eu incep cu indexarea de la 1
boiustef: dacă doreşti de la 1 şi ştii că ai 5 linii şi 5 coloane, atunci eşti obligat să declari a[6][6], dar în aşa caz rămân 12 locaţii de memorie neutilizate
fstraz: ok
fstraz: mersi
boiustef: linia 0 şi coloana 0 rămâne neutilizată.
boiustef: La declaraţia a[6], numărul 6 indică dimensiune nu indice, adică 6 elemente, dar indexate de la 0 la 5

Răspunsuri la întrebare

Răspuns de bogdanstefanrp33yqr
0

Deoarece tu nu folosesti a[i][j] i=0,j=0.

tu incepi de la i=1,j=1, de aceea iti trebuie o matrice 6x6 in exemplul tau


fstraz: ok mersi mult
Alte întrebări interesante