[C] Programma con if
Salve ragazzi,
Sono nuova, vorrei sapere perché quando avvio questo programma mi stampa in ogni caso l'if ( a = b = c = d) anche se non sono uguali.. come mai???
#include
#include
main()
{
int a,b,c,d,max;
printf("\nprimo numero a=");
scanf("%d",&a);
printf("\nsecondo numero b=");
scanf("%d",&b);
printf("\nterzo numero c=");
scanf("%d",&c);
printf("\nquarto numero d=");
scanf("%d",&d);
max=a;
if (b>max)
max=b;
if (c>max)
max=c;
if (d>max)
max=d;
printf("\nil massimo fra %d,%d,%d,%d e' \t %d\n\n",a,b,c,d,max);
if(a = b = c = d){
printf("Valori tutti uguali\n");
}
system ("PAUSE");
return 0;
}
Sono nuova, vorrei sapere perché quando avvio questo programma mi stampa in ogni caso l'if ( a = b = c = d) anche se non sono uguali.. come mai???
#include
#include
main()
{
int a,b,c,d,max;
printf("\nprimo numero a=");
scanf("%d",&a);
printf("\nsecondo numero b=");
scanf("%d",&b);
printf("\nterzo numero c=");
scanf("%d",&c);
printf("\nquarto numero d=");
scanf("%d",&d);
max=a;
if (b>max)
max=b;
if (c>max)
max=c;
if (d>max)
max=d;
printf("\nil massimo fra %d,%d,%d,%d e' \t %d\n\n",a,b,c,d,max);
if(a = b = c = d){
printf("Valori tutti uguali\n");
}
system ("PAUSE");
return 0;
}
Risposte
Per confrontare due valori devi usare due uguali. Inoltre non puoi confrontare in quel modo 4 valori. Puoi confrontare solo due valori per volta e usare && oppure || per legare le varie condizioni.
Per prima cosa scrivere
non significa verificare se a e b sono uguali. Questo codice significa assegnare ad a il valore di b e il codice dentro l'if viene eseguito se il valore acquisito da a è maggiore di 0.
per fare un confronto tra variabili devi usare un doppio uguale
inoltre non puoi fare confronti multipli, ma solo a coppie di due pertanto per verificare se tutti e quattro i valori sono uguali hai più strade, te ne indico qui due.
Prima possibilità:
Seconda possibilità:
if(a=b) { (codice nell'if) }
non significa verificare se a e b sono uguali. Questo codice significa assegnare ad a il valore di b e il codice dentro l'if viene eseguito se il valore acquisito da a è maggiore di 0.
per fare un confronto tra variabili devi usare un doppio uguale
if(a==b) { (codice nell'if) }
inoltre non puoi fare confronti multipli, ma solo a coppie di due pertanto per verificare se tutti e quattro i valori sono uguali hai più strade, te ne indico qui due.
Prima possibilità:
if(a==b) { if(b==c) { if(c==d) { (codice da eseguire se le variabili sono uguali tra di loro) } } }
Seconda possibilità:
if ((a==b) && (b==c) && (c==d) { (codice da eseguire se le variabili sono uguali tra di loro }
"Summerwind78":
Per prima cosa scrivere
if(a=b) { (codice nell'if) }
non significa verificare se a e b sono uguali. Questo codice significa assegnare ad a il valore di b e il codice dentro l'if viene eseguito se il valore acquisito da a è maggiore di 0.

"vict85":
[quote="Summerwind78"]Per prima cosa scrivere
if(a=b) { (codice nell'if) }
non significa verificare se a e b sono uguali. Questo codice significa assegnare ad a il valore di b e il codice dentro l'if viene eseguito se il valore acquisito da a è maggiore di 0.

Vero scusa, ho ragionato con un unsigned int e non nel caso più generico

Grazie mille ragazzi
Errore stupido lo so
ma sono ancora agli inizi

Errore stupido lo so



Eh, mi fai venire in mente tutte le volte che sbagliavo a scrivere $=$ invece di $==$ in un confronto.