Ciao a tutti mi servirebbe una mano a capire il funzionamento dei puntatori a funzione.
Nello specifico vi posto un esercizio che non riesco a fare:
Si scriva una funzione C che prende i seguenti parametri:
-due int x1 e x2;
-due float y1 e y2;
-una funzione f con risultato di tipo int, un parametro x di tipo int e un parametro y di tipo float
La funzione deve calcolare la somma dei risultati di f per tutte le possibili combinazioni di valori dei due parametri x e y, quando x varia tra x1 e x2(estremi inclusi) con incrementi di 2 e y varia tra y1 e y2 (estremi inclusi) con incrementi di 1.
Il prototipo della funzione che l 'esercizio chiede penso sia questo:
int funzione(int x1,int x2, float y1, float y2, int (f *) (int x,float y));
Ecco una bozza di codice che ho provato a scrivere ma penso proprio che non abbia senso
Grazie a tutti in anticipo!
codice:#include <stdio.h> int somma(int a, float b); int * funzione (int x1,int x2, float y1, float y2,int (*f)(int x, float y)); int main(void){ int a=10,b=8; float c=5,d=8; int risultato[1000]; for (int i=0;i<1000;i++) risultato[i]=*funzione(a, b, c, d, somma); printf("risultato[0]=%d",risultato[0]); return 0; } int somma(int a, float b){ int result; result=a+b; return result; } int * funzione (int x1,int x2, float y1, float y2,int (*f)(int x, float y)){ int max; if(x1>x2)max=x1; else max=x2; int big; int interi[max]; int i,j,k; int risultati[max+big]; int *bo; if(y1>y2)big=y1; else big=y2; float fl[big]; for (i=0; i<=max;i++) { for (j=0; j<=big; j++){ for(k=0;k<max+big;k++){ risultati[k]=somma(interi[i], fl[j]); }}} i++ ; bo=risultati; return bo ; }


					
					
					
						
  Rispondi quotando