WTF (C coding inside)(sì dai lullatemi, la fitta sassaiola di STOCAZZO)(PD^infinito)

Risultati da 1 a 20 di 29

Discussione: WTF (C coding inside)(sì dai lullatemi, la fitta sassaiola di STOCAZZO)(PD^infinito)

Visualizzazione Elencata

Messaggio precedente Messaggio precedente   Nuovo messaggio Nuovo messaggio
  1. #20
    Filastrocchiere di STOCAZ L'avatar di Skywolf
    Data Registrazione
    Jan 2016
    Messaggi
    7.244

    Re: WTF (C coding inside)(sì dai lullatemi, la fitta sassaiola di STOCAZZO)(PD^infini

    Adesso non stampo più la funzione.
    Creo una variabile out, le assegno il valore di ritorno della funzione.
    E stampo out.

    Il risultato?


    Non più 0.

    46.


    C'è qualcosa che non va, decisamente.


    Eccovi il codice:

    nel main (è troppo lungo e fottesegate) (tanto il punto non è se sia corretto quello che fa, il punto è che i valori dovrebbero essere uguali)

    inputType xx[2];
    double out;
    for(i=0;i<3;i++){
    printf("\n introduci x : ");scanf("%lf",&xx[0]);
    printf("\n introduci y : ");scanf("%lf",&xx[1]);
    out = calculateOutput(&model, xx, 2);
    printf("\n Output = %lf",out);
    }

    le routine:

    double calculateNodeOutput(Node *thisNode, double *input, unsigned int inputSize){
    unsigned int i;
    double out;

    printf("\nCalculating output: %d %d %d %lf %lf",(*thisNode).depth,(*thisNode).isLeaf,(*(*this Node).parent).nextCondition.index,(*(*thisNode).pa rent).nextCondition.threshold,(*thisNode).nodeOutp ut);
    out = (*thisNode).nodeOutput;
    return out;
    }


    double calculateOutput(Tree *tree, double *input, unsigned int inputSize){
    unsigned int i = 0;
    Node *thisNode;
    double out;


    thisNode = &(*tree).root;
    while((*thisNode).isLeaf == false){
    i = (*thisNode).nextCondition.index;
    if (i<0 || i>= inputSize){
    fprintf(stderr,"\n Errore nel calcolo dell'output: indice di nodo pari a %d, massimo %d",i,inputSize);
    exit(1);
    }
    if(input[i]<(*thisNode).nextCondition.threshold){
    thisNode = (*thisNode).leftSon; /*printf("\nfollowing route left");*/}
    else{
    thisNode = (*thisNode).rightSon; /*printf("\nfollowing route right");*/}
    }
    out = (*thisNode).nodeOutput = calculateNodeOutput(thisNode, input, inputSize);
    printf("\nCalculating output: %d %d %d %lf %lf",(*thisNode).depth,(*thisNode).isLeaf,(*(*this Node).parent).nextCondition.index,(*(*thisNode).pa rent).nextCondition.threshold,out);
    return out;
    }

    Ultima modifica di Skywolf; 15-01-22 alle 21:05

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Chi Siamo
Forum ufficiale della rivista
The Games Machine
Seguici su