Sgn Funktion



  • Hallo
    ich bin jetzt ganz neu hier wir fangen grad an in der schule zu programmieren und bin mir jetzt auch nicht ganz sicher ob ich hier im richtigen unterforum gelandet bin meine auf gabe lautet einige werte mit der signum funktion auszuwerten aber ich weiß nicht ganz wo mein fehler liegt würde mich freuen wenn mir jemand meinen fehler erklären könnte und wie ich es richtig mache

    # include <stdio.h>
    
    #define sgn(x)
    
    int main(void)
    {
    	float zahl1 , zahl2, zahl3;
    
    	zahl1 = -123;
    	zahl2 = 123;
    	zahl3 = 0;
    
    	printf("%f\n", sgn(zahl1));
    	printf("%f\n", sgn(zahl2));
    	printf("%f\n", sgn(zahl3));
    
    	return (0);
    }
    

    der commpiler zeigt mir an das ich nen error 2059 syntaxfehler: ')'

    und ich hab schon im internet viel herum gelesen und gesucht aber bin nirgens fündig geworden

    gruß couter[code][cpp]



  • Dein sgn Makro wird ersetzt durch... NICHTS!



  • ich muss dann also bei #define sgn (x) noch diese bedingungen hinschreiben also

    x<0 = -1; x>0 = 1;
    x==0 = 0;


  • Administrator

    1. Ja, du bist im falschen Unterforum. Was du als Quellcode präsentierst ist C. C hat nichts zu tun mit C# oder C++ oder C++/CLI (alles eigenständige Sprachen). Hier ist das C Forum:
    http://www.c-plusplus.net/forum/viewforum-var-f-is-10.html

    2. Solltest du vielleicht anstatt eines Makros nicht eher eine Funktion machen?

    #include <stdio.h>
    
    float sgn(float val)
    {
        // Hier dein Code rein
        // und mit return das Resultat zurückgeben.
    }
    
    int main(void)
    {
        float zahl1 , zahl2, zahl3;
    
        zahl1 = -123;
        zahl2 = 123;
        zahl3 = 0;
    
        printf("%f\n", sgn(zahl1));
        printf("%f\n", sgn(zahl2));
        printf("%f\n", sgn(zahl3));
    
        return (0);
    }
    

    Grüssli


Anmelden zum Antworten