frexp4



  • Hallo zusammen!

    Ich häng grad an nem Problem:

    Wir sollen im Studium ne Funktion frexp4 erstellen, die unter Verwendung von frexp eine reelle Zahl a!=0 in b*4^n mit n aus ZZ und 0,25 <= |b| < 1 zerlegt. n soll auch hier wie in frexp als Zeiger zugänglich sein.

    Meiner Meinung nach habe ich die Aufgabe größtenteils gelöst, mir wird nur immer der Zeiger 0 zurückgegeben anstatt - beim Beispiel frexp(4,&n) - 2.

    Könnt ihr mir da weiterhelfen, was ich falsch gemacht hab???

    Merci 🙂

    ach ja 😃 ... der Code wäre noch nicht schlecht:

    double frexp4 (double a, int *zp) {
    	int z;
    	double b;
    	b = frexp(sqrt(fabs(a)),&z);
    	b=b*b;
    	if (a<0) {
    		b=-b;
    	}
    	zp=&z;
    	return b;
    }
    


  • Versuchs mal so:

    *zp=z;
    

    anstatt

    zp=&z;
    

    Du musst nicht die Adresse von z zp zuweisen, du muss z der In zp schreiben!



  • es könnte so gehen:

    double frexp4 (double a, int *zp) {
        double b = frexp(sqrt(fabs(a)),zp);
        b=b*b;
        if (a<0)
            b=-b;
        return b;
    }
    


  • Merci für die schnelle Hilfe 👍

    Mit *zp=z; funktionierts 🙂

    liebe Grüße,
    Winnie


Anmelden zum Antworten