Buonasera a tutti,
nel programma qui sotto ottengo sia per argument 2 che 3
[Warning] passing argument 2 of 'funz' from incompatible pointer type [enabled by default]
[Note] expected 'double *' but argument is of type 'double **'
Vorrei sapere dove sbaglio nell' utilizzare i puntatori.
La funzione dovrebbe essere giusta, sbaglio quando cerco di richiamarla nel main .
Ringrazio chiunque interverrà.
Produrre le dichiarazioni C che permettono di
-definire la struct DATi con campi uno due di tipo double
-un vettore di 5 lementi di tipo DATI denominato VETDATI
Scrivere quindi la funzione che ha in ingresso un vettore v di tipo VETDATI e che restituisce attraverso il parametro par1 l'elemnto di v con il valore max del campo uno e attrav il parametro par2 l'elemento di v con il valore minimo del campo due.
(In entrambi i casi se piu di un elemento corrispondesse alla richiesta ne sceglierebbe uno qlunque)
codice:#include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ typedef struct{double uno, due;}DATI; typedef DATI VETDATI[5]; void funz(VETDATI V,double *par1 ,double *par2)///par1 max uno //par2 min due { int i; *par1=V[0].uno; *par2=V[0].due; for(i=0;i<5;i++) { if (V[i].uno>(*par1)) *par1=V[i].uno; if (V[i].due<(*par2)) *par2=V[i].due; } } int main(int argc, char *argv[]) { int i; VETDATI V; double *MAXUNO, *MINDUE; for(i=0;i<5;i++) {printf("inserisci V[%d].uno e V[%d].due\n",i,i); scanf("%lf%lf",&V[i].uno,&V[i].due); } funz(V,&MAXUNO,&MINDUE); printf("MAXUNO %lf\nMINDUE %lf",MAXUNO, MINDUE); return 0;

Rispondi quotando
