Esercizio in c(puntatori a funzione)

di il
4 risposte

Esercizio in c(puntatori a funzione)

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.
Ho provato in vari modi ma non riesco a capire come risolverlo.

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));
Grazie in anticipo!

4 Risposte

  • Re: Esercizio in c(puntatori a funzione)

    Se hai provato in tutti i modi, posta il codice di uno di questi modi e vediamo dove sbagli e dove ci sono problemi ...
  • Re: Esercizio in c(puntatori a funzione)

    Ho provato a mettere i numeri in un array ma credo che non abbia senso...


    #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=*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, fl[j]);
    }}}

    i++ ;
    bo=risultati;
    return bo ;
    }
  • Re: Esercizio in c(puntatori a funzione)

    Vedi richieste in

    http://forum.html.it/forum/forumdisplay.php?forumid=5
  • Re: Esercizio in c(puntatori a funzione)

    Chiuso x crossposting
Devi accedere o registrarti per scrivere nel forum
4 risposte