Esercizio preparazione esame calcolo integrale in c

rikideveloper
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
apatriarca
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?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.