Dubbio valore assoluto
salve praticamente sto svolgendo questo esercizio
il problema è che non riesco a rendere i numeri in valori assoluti , ho posto la condizione se la differenza è negativa , la moltiplico per -1 e la rendo positiva , solo che non funziona cosa sbaglio?grazie in anticipo
Scrivere un algoritmo in linguaggio C che: - legge da tastiera tre numeri interi x,y, z - assegna la loro somma ad una variabile w - scrive le differenze in valore assoluto fra w e x,y,z #include <stdio.h> #include <stdlib.h> int main (){ int x , y ,z , w , diff1 , diff2 , diff3; printf("inserisci un valore:"); scanf("%d" ,&x); printf ("inserisci un numero:"); scanf ("%d" , &y); printf("inserisci un numero:"); scanf("%d" , &z); w=x+y+z; printf("il risultato e': %d\n" , w); diff1=w-x; diff2=w-y; diff3=w-z; if(diff1<0) diff1* -1; if(diff2<0) diff2 * -1; if (diff3<0) diff3 *-1; printf ("w-x e' uguale a :%d\n" , diff1); printf ("w-y e' uguale a : %d\n", diff2); printf ("w-z e' uguale a : %d\n" , diff3); return 0; }
il problema è che non riesco a rendere i numeri in valori assoluti , ho posto la condizione se la differenza è negativa , la moltiplico per -1 e la rendo positiva , solo che non funziona cosa sbaglio?grazie in anticipo
Risposte
"Sergio":
Con quali numeri in input non funziona?
nel senso che mi da warnings (warnings : statement with no effect) dove ci sono gli if , e se metto dei valori negativi non me li mette positivi(in valore assoluto) , cosa sbaglio??grazie!
//...this has no effect if(diff1<0) diff1* -1;
Infatti l'istruzione moltiplica 'diff1' per '-1' e poi scarta il risultato.
Eh si, motiplichi per -1, ma non salvi il risultato in nessuna variabile, credo che nell'if dovresti mettere "diff1=diff1* -1; " o memorizzi in una variabile exnovo.
è vero! che sbadato grazie mille!!!