codice:
#include<stdio.h>
#include<stdlib.h>
void mosse_cavallo(int pos_iniz[],int pos_possibili[][8]);
void controllo(int x,int y,int pos_possibili[][8]);
int main()
{ int k,i,j,pos_iniz[2],pos_possibili[2][8];
printf("Inserisci la riga della posizione iniziale del cavallo:\n");
scanf("%d",&pos_iniz[0]);
printf("Inserisci la colonna della posizione iniziale del cavallo:\n");
scanf("%d",&pos_iniz[1]);
mosse_cavallo(pos_iniz,pos_possibili);
printf("Le possibili mosse del cavallo sono:\n");
for(j=0;j<i;j++)
{printf("%d",pos_possibili[0][j]);
printf("%d",pos_possibili[1][j]);
printf("\n");
}
}
void mosse_cavallo(int pos_iniz[],int pos_possibili[][8])
{ int x,y;
x=pos_iniz[0]+1;
y=pos_iniz[1]+2;
controllo(x,y,pos_possibili);
x=pos_iniz[0]+1; /* rigo 31 */
y=pos_iniz[1]-2;
controllo(x,y,pos_possibili);
x=pos_iniz[0]-1;
y=pos_iniz[1]+2;
controllo(x,y,pos_possibili);
x=pos_iniz[0]-1;
y=pos_iniz[1]-2;
controllo(x,y,pos_possibili);
x=pos_iniz[0]+2;
y=pos_iniz[1]+1;
controllo(x,y,pos_possibili);
x=pos_iniz[0]+2;
y=pos_iniz[1]-1;
controllo(x,y,pos_possibili);
x=pos_iniz[0]-2;
y=pos_iniz[1]+1;
controllo(x,y,pos_possibili);
x=pos_iniz[0]-2;
y=pos_iniz[1]-1;
controllo(x,y,pos_possibili);
return;
}
void controllo(int x,int y,int pos_possibili[][8])
{int i;
i=0;
if((x>=0)&&(y>=0))
{ if((x<8)&&(y<8))
{pos_possibili[0][i]=x;
pos_possibili[1][i]=y;
i=i+1;}
}
return;
}
Mi da un bel loop sull'output e credo che sia perchè in quel ciclo d'output della mtrice non riconosca la i, ma non riesco a passarla per indirizzi, consigli?