PDA

Visualizza la versione completa : [C] Valore assoluto con puntatori


Haki96
02-05-2014, 23:22
Nuovo problema con i puntatori, c' sempre un errore a livello concettuale.


/*Valore assoluto


Scrivete una funzione con prototipo
void abs( int *a)
che trasformi il valore dell'intero puntato da a in valore assoluto.
Quindi se la variabile puntata da a vale -5, dopo aver chiamato la funzione, la variabile puntata da a diventerebbe 5. */


#include<stdio.h>


int abs (int *a) {
int tmp;
tmp=*a;
if (tmp<0) {
*a=-(tmp);
printf("nuovo risultato %d",*a);
}
else {
printf("nuovo risultato %d",*a);
}
}




int main (){
int val;
printf("inserisci numero da trasformare \n");
scanf("%d",&val);
abs(&val);


return 0;
}

oregon
03-05-2014, 09:56
1) ti stato scritto che deve essere void abs( int *a)

Quindi la funzione non deve restituire valori. L'esercizio fatto per comprendere come i valori passati come argomento possano essere modificati. E' una funzione di una sola linea



void abs(int *a)
{
if((*a)<0) *a=-(*a);
}


2) la visualizzazione del dato con le printf non va nella funzione ma all'uscita nel main

Haki96
05-05-2014, 23:58
Grazie!

Loading