Tabelle Polynom



  • paul23 schrieb:

    ... aber ich verstehe immernoch nicht, warum er nicht mindestens die x-Werte richtig ausgibt :S

    Weil printf() nicht scanf() ist. Auch wenn der Formatstring ähnlich aussieht, erwarten sie doch gänzlich andere Parameter.
    scanf() erwartet Adressen. printf() erwartet Werte.

    printf("%f\n" , x);
                   ^ DA ist der Unterschied
    


  • scanf für double braucht %lf.
    Mit p benennt man keine Funktion.



  • achsoo, klaar lf :S irgendwie die ganze Zeit übersehen!
    Und stimmt, bei scanf speichert er ja die gescannte Zahl unter dem was hinter & steht aber hier soll er ja nur den Wert für x ausgeben..DANKE! Dumm von mir merke grad....jetzt kriege ich die x Zahlen richtig ausgegeben

    #include <stdio.h>
    #include <math.h>
    
    double a3,a2,a1,a0,x;
    double p(double x)
    {
        return (a3*x*x*x) + (a2*x*x) + (a1*x) + a0;
    }
    
    int main(void)
    {
        printf("Geben Sie für das Polynom p(x) Die Koeffizinten an:\n");
        printf("a3="); scanf("%f", &a3);
        printf("a2="); scanf("%f", &a2);
        printf("a1="); scanf("%f", &a1);
        printf("a0="); scanf("%f", &a0);
        printf("\nx\t\tp(x)\t\tp'(x)\t\tp''(x)\n");
    
        for(x=-3;x<=3;x=x+0.2)
        {
            printf("%lf\n" ,x);
        }
    
    return 0;
    }
    

    und wie kann ich die Funktion p(x) aufrufen, ausgeben lassen??
    so einfach mit printf("%lf" , p(x)) geht das irgendwie nicht. Müsste es nicht, eigentlich so gehen??
    und wie kriege ich es so hin, dass das dann immer neben der x gezeigt wird und nicht darunter??



  • Wutz schrieb:

    scanf für double braucht %lf.
    Mit p benennt man keine Funktion.

    Schau die mal die Steuerzeichen in ASCII an 😉



  • Mache ich, danke, das mit f und lf weiß ich, war ein Tippfehler, dass ich dummerweise die ganze Zeit übersehen habe.
    Aber wie gebe ich den Wert für p(x) aus? ich glaubte ja zu wissen wie es geht, aber so klappt es grad irgendwie nicht.
    Und wie kriege ich diesen Wert neben den x-Werten hin, und nicht darunter??
    Damit es auch wirklich in der Tabelle unter p(x) ist?



  • Lies dir die 'Anleitung' zu printf() durch.

    Schau dir die Bedeutung von \t und \n an.



  • wieso, habe ich \t und \n falsch verwendet???
    \t macht doch Leerzeichen und \n springt eine Zeile runter, also einen Absatz, oder nicht??



  • paul23 schrieb:

    und wie kriege ich es so hin, dass das dann immer neben der x gezeigt wird und nicht darunter??

    Du möchtest die Ausgabe ändern, also versuche selbst mal die Steuerzeichen anders einzusetzen.
    Und, ja '\n' KANN einen Absatz darstellen. Andere Systeme andere Sitten... MAC Windows und Linux/Unix machen das jeder anders. Probier da selber ruhig mal rum 😉

    '\t' ist afaik immer ein Tabulator. Glaube 4 Leerzeichen müssten das sein. Könnte aber sicher auch wieder iwie Systemabhängig sein. Wie gesagt probieren geht über studieren.



  • Der Sinn von einem Tabulator ist eigentlich, dass er auf eine bestimmte Stelle springt. Also nicht 4 Leerzeichen weiter, sondern auf eine durch 4 teilbare Position (oder sind es 8 ?).

    Zudem dürfen auch mehrere Formatspecifier im Formatstring sein.
    Und der Formatstring muss auch nicht mit \n aufhören.



  • DirkB schrieb:

    Der Sinn von einem Tabulator ist eigentlich, dass er auf eine bestimmte Stelle springt. Also nicht 4 Leerzeichen weiter, sondern auf eine durch 4 teilbare Position (oder sind es 8 ?).

    Oh ja, natürlich 🙂


Anmelden zum Antworten