Dubbio valore assoluto

gio881
salve praticamente sto svolgendo questo esercizio

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
gio881
"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!

Rggb1
//...this has no effect
if(diff1<0) diff1* -1;


Infatti l'istruzione moltiplica 'diff1' per '-1' e poi scarta il risultato.

kikkabis
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.

gio881
è vero! che sbadato grazie mille!!!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.