#include #include int fn; double f(double x) { if(fn<=5 && fn>=1) { switch(fn) { case 1:{ return sin(x); break; } case 2:{ return exp(x)-5*x+1; break; } case 3:{ return x*x-2; break; } case 4:{ return (double)1/7+1/x; break; } case 5:{ return 2*x-2; } } } return 0; } struct rueckgabe { int anzit; int ok; double x0; }; struct rueckgabe nullstelle(double a,double b,double g) { struct rueckgabe merker; double c=0; merker.anzit=0; merker.ok=1; do{ c=(a+b)/2; if (f(a)>0 && f(b)<0) { if(f(c)>0) { a=c; } else { b=c; } }else if(f(a)<0 && f(b)>0) { if(f(c)<0) { a=c; } else { b=c; } }else if(f(a)==0) { c=b=a; // x0=a } else if(f(b)==0) { c=a=b; // x0=b } else merker.ok=0; merker.anzit++; }while (g