#include #include int main(void) { char berechnung='j'; int i; double y_neu, y_alt, x, acc, diff; while(berechnung!='n') { printf("\nDie Wurzel aus welcher Zahlen ziehen: "); scanf("%lf", &x); fflush(stdin); printf("\nGenauigkeit: 10^-"); scanf("%lf", &acc); fflush(stdin); i=1; y_alt=x/2; while(1) { y_neu=0.5* ((x/y_alt) + y_alt); diff=fabs(y_neu-y_alt); printf("\nZyklus %d: ", i); printf("\n\tneuer Wert von y:%.8lf", y_neu); printf("\n\tAbsolutwert der Differenz:%.8lf", fabs(y_neu-y_alt)); if(diff <= fabs(pow(10,-acc))) { printf("\n\nErgebnis mit Naeherungsverfahren: %.8lf", y_neu); printf("\nErgbnis von sqrt aus math.h: %.8lf", sqrt(x)); break; } y_alt=y_neu; i++; } printf("\n\nErneute Berechnung? j/n: "); berechnung=getchar(); fflush(stdin); } return 0; } /* Ausgabe: Die Wurzel aus welcher Zahlen ziehen: 36 Genauigkeit: 10^-8 Zyklus 1: neuer Wert von y:10.00000000 Absolutwert der Differenz:8.00000000 Zyklus 2: neuer Wert von y:6.80000000 Absolutwert der Differenz:3.20000000 Zyklus 3: neuer Wert von y:6.04705882 Absolutwert der Differenz:0.75294118 Zyklus 4: neuer Wert von y:6.00018311 Absolutwert der Differenz:0.04687572 Zyklus 5: neuer Wert von y:6.00000000 Absolutwert der Differenz:0.00018311 Zyklus 6: neuer Wert von y:6.00000000 Absolutwert der Differenz:0.00000000 Ergebnis mit Naeherungsverfahren: 6.00000000 Ergbnis von sqrt aus math.h: 6.00000000 Erneute Berechnung? j/n: n */