PDA

View Full Version : [C]Problema espressione if...


Arcanum88
01-05-2008, 11:09
Allora il mio problema è il seguente...Ho delle condizioni da porre tramite if ma, a quanto sto capendo, entrano in conflitto, cosa potrei fare?

for(i=0;i<R;i++){
for(j=0;j<C;j++){
for(r=-1;r<2;r++){
for(s=-1;s<2;s++){
if(mat[i+r][j+s]=='*'){
t++;
}
}
}

if(mat[i][j]=='*'){
if(t==2 || t==3){
mat1[i][j]= '*';
}
if(t==0 || t==1 || 4<=t<=8){
mat1[i][j]= ' ';
}
}else{
if(t==3){
mat1[i][j]='*';
}
}

Praticamente questa parte del programma dovremme mettere o togliere un asterisco a seconda se la posizione nella prima matrice soddisfi o meno l'espressione dell'if. Ora nel secondo if dovrebbe in pratica lasciare nella posizine l'asterisco, ma invece lo toglie...Da cosa potrebbe dipendere?
Grazie.

marra11mg
01-05-2008, 15:30
for(i=0;i<R;i++)
{
for(j=0;j<C;j++)
{
for(r=-1;r<2;r++)
{
for(s=-1;s<2;s++)
{
if(mat[i+r][j+s]=='*')
{
t++;
}
}
}

if(mat[i][j]=='*')
{
if(t==2 || t==3)
{
mat1[i][j]= '*';
}
if(t==0 || t==1 || 4<=t<=8)
{
mat1[i][j]= ' ';
}
}
else
{
if(t==3)
{
mat1[i][j]='*';
}
}
} // aggiunta io: mancava (chiude for J)
} // aggiunta io: mancava (chiude il primo for)



secondo me dovresti usare un editor tipo VisualC++ express 2008, anzichè il notepad :)

Arcanum88
01-05-2008, 15:42
Veramente io uso dev-c...cmq oltre le due parentesi finali hai cambiato qualche cosa?nn riesco a capire...

luigi351
01-05-2008, 17:18
si anch'io consiglio di utilizzare Visual...cmq una soluzione è compilalo con Visual e al momento che ti esce scritto l'errore lo posti su questo topic così vediamo un pò.

wingman87
02-05-2008, 00:53
Spiega meglio il problema e cosa dovrebbe fare questo codice. Ad esempio: t a cosa serve? Cosa rappresenta?