x = 1/3; funktioniert nicht ???



  • hallo hab grad mal folgendes geschrieben

    #include <stdio.h>
    #include <math.h>
    double wurzeldrei1 (double);
    
    int main (void)
    {
    	double x = 3;
    	double wurzel;
    
    	wurzel = wurzeldrei1(x);
    	printf ("%lf", wurzel);
    
    }
    
    double wurzeldrei1 (double x)
    {
    	double xneu = 5;
    	int i;
    
    	for (i=0;i<20;i++)
    		{
    			xneu = 1/3;
    			x = xneu;
    		}
    
    		return xneu;
    }
    

    eigentlich sieht das programm anders aus, ich möchte aber hiermit mein problem erläutern.

    in der for schleife unten, möchte ich, dass xneu den wert von 1/3 annimmt, bei mir bekommt es aber immer den wert 0??

    könnt ihr mir sagen was ich falsch mache?



  • 1.0 / 3.0



  • *seufz*

    danke



  • Zur Erklärung (für dich und alle, die über das selbe Problem stolpern): Wenn du zwei ganze Zahlen dividierst, wird dazu int-Arithmetik verwendet - und das bedeutet, daß Nachkommastellen entsorgt werden. Um Gleitkomma-Division zu verwenden, muß mindestens ein double beteiligt sein (theoretisch reicht auch 1/3.0 aus).



  • CStoll schrieb:

    Zur Erklärung (für dich und alle, die über das selbe Problem stolpern): Wenn du zwei ganze Zahlen dividierst, wird dazu int-Arithmetik verwendet - und das bedeutet, daß Nachkommastellen entsorgt werden.

    Wobei man genauer sagen sollte, int Division heisst Ergebnis mit Rest.


Anmelden zum Antworten