#include <stdio.h>
#include <math.h>

double Wurzel(double c)
{
	double xneu=c, xalt, schranke=1.0;

	if(xneu==0.0)
		return(0.0);
  
	do
	{
		xalt=xneu;
		xneu=0.5*xalt+0.5*c/xalt;
		if(xalt>1)
			schranke=xalt;
		else
			schranke=1.0;
    
	} while(fabs(xneu-xalt)>(1e-15*schranke));
  
	return(xneu);
  
}

/* --------------------------------*/

int main(void)
{
	double zahl;
 
	printf("Dieses Programm berechnet die Wurzelfunktion fuer von Ihnen eingegebene Argumente.\n\
Geben Sie bitte Ihre Zahl ein: "); 
 
	scanf("%lf",&zahl);
     
	if(zahl<0)
	{
		printf("Die Wurzel von  %lf existiert im Reellen nicht; Abbruch!\n\n", zahl);
		return(1);
	}
     
	printf("Die Wurzelfunktion von %lf lautet:\nMittels Newtonverfahren berechnet:\n%.15lf\
\nIn math.h implementierte Wurzel-Funktion:\n%.15lf\n", zahl, Wurzel(zahl), sqrt(zahl)); 
     
 
	return(0);
  
}

