Il while ,non fa quello che vorresti che facesse !
hai il primo ciclo for ," che passa da una riga ad un altra" , il secondo for scansiona elemento per elemento la riga , se devi fare qualche modifica la devi fare all'interno
del primo for
il while dovrebbe provocare un ciclo infinito , mettiamo il caso j=0 condizione del while
j<20 sempre vera non uscirebbe mai dal ciclo , che a sua volta se la condizione if sempre
verificata , provocherebbe un continuo incremento di cont fino a quanto puo contenere
codice:
void controllariga()
{
int i,j,k,cont=0;
for(i=0;i<larghezza_colonne;i++)
{
for(j=0; j<altezza_righe;j++)
{
if(mappa2[i][j]==1)
cont++;
}
if(cont<20)
cont=0;
else if(cont==20)//se cont =20
{
for(k=0; k<20;k++)//tutti gli elementi della riga sono sostituiti con 0
mappa2[i][k]=0;// se cancellare significa per te eliminare
//devi seguire il consiglio di oregon ,ma dovrai farti una funzione e richiamarla
//in questo punto
cont=0; //azzera cont
}
}
}//fine controlla riga