Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2014
    Messaggi
    7

    [C] Puntatori a funzione e calcolo somma

    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 ;
    }
    Ultima modifica di LeleFT; 03-09-2014 a 17:18 Motivo: Aggiunti i tag CODE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.