En esta funcion me arroja dos errores:
1)expected '}' before 'else'
2)break statement not within loop or switch
El primer error corresponde a la linea del
printf("as");
else if (contador<=columDisponibles){
Y el segundo error correponde al de
if(palabra[h]=='\0'){
break;
}
Es como si perdiera la referencia del while o de los if, siendo que revisando cada llave, estan bien segun yo. Dejo el codigo de la funcion completa:
char** definirDificultad(char ** nuevaMatriz,int N, int M ,int dificultad){
int i,j,h,contador, filasDisponibles,columDisponibles;
char caracter;
char palabra[200];
//palabra=(char*)malloc(sizeof(char));
for(i=0;i<N;i++){
for(j=0;j<M;j++){
nuevaMatriz[i][j]='&';
}
}
FILE *diccionario;
diccionario
=fopen("Diccionario.txt","r");
posicion *posicionActual;
posicionActual
=malloc(sizeof(posicion
));
//Palabras horizontales
if(dificultad==1){
for(i=0;i<N;i++){
for(j=0;j<M;j++){
fscanf(diccionario
,"%c",&caracter
); break;
}
if (caracter!='\n'){
nuevaMatriz[i][j]=caracter;
}
}
}
}
// Palabras verticales
else if(dificultad==2){
h=0;
while(!feof(diccionario
)){ fscanf(diccionario
,"%c",&palabra
[h
]); h++;
}
palabra[h-1]='\0';
h=0;
j=0;
int k=0;
posicionActual->x=0;
posicionActual->y=0;
while(palabra[h]!='\0'){
contador=0;
while(palabra[h]!='\n'){
contador++;
h++;
}
k=h-contador;
if(contador<=N && contador<=M && contador!=0){
filasDisponibles=N-(posicionActual->x);
columDisponibles=M-(posicionActual->y);
if(contador<=filasDisponibles){
for(i=posicionActual->x;i<(contador+posicionActual->x);i++){
if(i>=N){
break;
}
else if(nuevaMatriz[i][j]=='&' || nuevaMatriz[i][j]==palabra[k]){
nuevaMatriz[i][j]=palabra[k];
k++;
}
}
i=posicionActual->x;
while(nuevaMatriz[i][j]!='&'){
j++;
if(j>=M){
j=0;
i++;
}
}
posicionActual->y=j;
posicionActual->x=i;
}
else if (contador<=columDisponibles){
for(j=posicionActual->y;j<(contador+posicionActual->y);j++){
if(j>=M){
break;
}
else if(nuevaMatriz[i][j]=='&' || nuevaMatriz[i][j]==palabra[k]){
nuevaMatriz[i][j]=palabra[k];
k++;
}
}
j=posicionActual->y;
while(nuevaMatriz[i][j]!='&'){
j++;
if(i>=N){
i=0;
j++;
}
}
posicionActual->y=j;
posicionActual->x=i;
}
}
if(palabra[h]=='\0'){
break;
}
h++;
}
}
//free(palabra);
return nuevaMatriz;
}