Esercizio preparazione esame calcolo integrale in c
Salve sto studiando per un esame di fondamenti di informatica, ho provato a fare un esercizio sul calcolo di un integrale (con il metodo dei rettagoli) dati due estermi a(estermo minore asse x) e b(estermo maggiore asse x), ed n(il numero di intervalli da suddividere l'integrale, mi potete dire se il codice è corretto:
#include <stdio.h> float area(float h,float d){ float ris=0; ris=h*d; printf("%f \n",ris); return ris; } float rettangoli(float(*func)(float a,float b),float a,float b,float n){ float ris=0; int i=0; float h=0; float d; d=b-a; h=((a+b)/n); for(i=0; i<n; i++){ ris=ris+(*func)(h,d); } return ris; } void main(){ float a=0,b=0,n=0,val=0; float ris=0; printf("Inserisci il valore di A: \n"); scanf("%f",&a); fflush(stdin); printf("Inserisci il valore di B (DEVE ESSERE MAGGIORE DI A): \n"); scanf("%f",&b); fflush(stdin); printf("Inserisci il valore di N: \n"); scanf("%f",&n); fflush(stdin); ris=rettangoli(area,a,b,n); printf("%f",ris); fflush(stdin); scanf("%f",a); }
Risposte
Ciao, ho modificato il tuo codice in modo da inserirlo in un blocco di codice (tag code). La prima cosa sbagliata nel codice è quella di usare fflush con stdin. fflush è infatti definito solo per stream di scrittura e non per stream aperti in lettura. Non ne capisco poi del tutto la logica.. Di che funzione stai cercando di calcolare l'integrale?