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;