Na czym polega różnica między if, a else if?
Teraz program liczy poprawnie.
#include <stdio.h>
int main(int argc, char **argv)
{
int A[4][5];
int i, j, suma;
for(i=0; i<4; i++)
for(j=0; j<5; j++)
{
printf("Podaj element (%d, %d) macierzy A: ", i, j);
scanf("%d", &A[i][j]);
}
for(i=0; i<4; i++)
{
for(j=0; j<5; j++)
{
printf("%d ", A[i][j]);
}
printf("\n");
}
for(i=0; i<4; i++)
{
for(j=0; j<5; j++)
{
suma = 0;
if(i>0)
suma+= A[i-1][j];
if(i<3)
suma+=A[i+1][j];
if(j>0)
suma+=A[i][j-1];
if(j<4)
suma+=A[i][j+1];
printf("suma sasiednich elementow elementu (%d, %d) = %d\n", i, j, suma);
}
}
return 0;
}
Teraz mała zmiana:
for(i=0; i<4; i++)
{
for(j=0; j<5; j++)
{
suma = 0;
if(i>0)
suma+= A[i-1][j];
else if(i<3)
suma+=A[i+1][j];
else if(j>0)
suma+=A[i][j-1];
else if(j<4)
suma+=A[i][j+1];
printf("suma sasiednich elementow elementu (%d, %d) = %d\n", i, j, suma);
}
}
Dlaczego, bo takiej zmianie program podaje inne wyniki niż powinien? Na czym polega różnica?