Ragazzi ho questo codice:
In particolare il conteggio ritorna sempre il medesimo valore e il programma si pianta. Come posso risolvere? Graziecodice:#include <stdlib.h> #include <stdio.h> float interpolazione(/*char *p, */float xp); int main(int argc, char* argv[]) { float xp,r; printf("Inserire valore xp:\n"); scanf("%f", &xp); printf("\n"); r=interpolazione(/*argv[1],*/xp); if(r==-1){ printf("\nIl valore introdotto e' fuori intervallo\n\n"); } else{ printf("\nil valore della funzione nel punto %.1f vale %.1f\n\n", xp,r); } system("PAUSE"); return 0; } float interpolazione(/*char *p, */float xp) { FILE *fp; int coppie; int ch; //per la getc int n; float r=0; if((fp=fopen("f.txt", "r"))==NULL){ printf("il file non puo' essere aperto.\n"); } //conto le coppie float t1; float t2; while(!feof(fp)) { fscanf(fp, "%f %f\n", &t1, &t2); coppie++; } fclose(fp); printf("\nNumero di coppie: %d", &coppie); //trasferisco i numeri negli array float x[coppie]; float fx[coppie]; int cont = 0; while(cont < coppie){ fscanf(fp,"%f %f\n", &x[cont], &fx[cont]); printf("%.1f %10.1f\n" , x[cont], fx[cont]); cont++; } if(xp>x[0]&&xp<x[coppie-1]){ for(n=1; n<=coppie; n++){ if( xp>=x[n-1]&&xp<=x[n] ){ return r=(fx[n-1]+fx[n])/2; } } } return r=-1; }
Ps:c'è un fclose(fp) fuori posto, l'ho spostato ma non cambia nulla


Rispondi quotando