Hallo 
Ich schreibe für die Uni ein C-Programm, welches ein bestimmtes Integral mit der Trapezformel ( I ≈ In = h /2 (f(x0) +2 f(x1) +···+2 f(xn−1) + f(xn)) mit h = (b−a)/n berechnen soll. Die Integrationsgrenzen a und b werden vom Benutzer eingegeben, n ist festgelegt als 5 und wird solange um 5 erhöht, bis I I(n−5) −In| / | In | < 10e−6 gilt oder n = 100 ist.
Ich habe bisher folgendes:
Das Programm kompiliert (Ich benutze DevC++) , dann sollen a und b eingegeben werden und nach der Eingabe stürzt es einfach ab...
Sieht jemand meinen Fehler? Ich komme nicht darauf.

Ich schreibe für die Uni ein C-Programm, welches ein bestimmtes Integral mit der Trapezformel ( I ≈ In = h /2 (f(x0) +2 f(x1) +···+2 f(xn−1) + f(xn)) mit h = (b−a)/n berechnen soll. Die Integrationsgrenzen a und b werden vom Benutzer eingegeben, n ist festgelegt als 5 und wird solange um 5 erhöht, bis I I(n−5) −In| / | In | < 10e−6 gilt oder n = 100 ist.
Ich habe bisher folgendes:
C:
#include<stdio.h>
#include<math.h>
double f(double x){
double y;
if(x>0){
y=log(x)/x;
}
return y;
}
double trapez(double a,double b, int n){
double I,h, rechnung;
int i=1;
double z[5000];
h= (b-a)/n;
rechnung=0;
for(i=1;i=n-1;i++){
rechnung=rechnung+2*(f(a+i*h));
}
I= (h/2)*(f(a)+rechnung+f(b));
z[n]=I;
return z[n];
}
int main(void){
double a,b,e,z[5000];
int n=5;
printf("Bitte geben Sie a und b ein: ");
scanf("%lf %lf", &a,&b);
do{
e=trapez(a,b,n);
printf("Index n= %d", n);
printf("Naeherung I_n= %lf ",e);
n=n+5;
}while(n<=100||(fabs(z[n-5]-z[n])/fabs(z[n]))<10e-6);
return 0;
}
Das Programm kompiliert (Ich benutze DevC++) , dann sollen a und b eingegeben werden und nach der Eingabe stürzt es einfach ab...
Sieht jemand meinen Fehler? Ich komme nicht darauf.

Zuletzt bearbeitet: