Sgn Funktion
-
hm was mach ich hier nur falsch? hab viel herumprobiert aber es will einfach nicht klappen aber ma muss dran bleiben könnte noch einen tip gebrauchen wie ich des schreiben soll
#include <stdio.h> float sgn(float val) { if (x<0) { printf("-1"\n); } else if (x>0) { printf("1"\n); } else (x=0) { printf("0"\n); } return 0; } 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); }
-
printf("-1\n"); <= \n muss unter die Anführungsstriche.
else (x=0) <= Nach else kommt keine Bedingung. Und x=0 ist eine Zuweisung und ist immer wahr. Richtig wäre x==0 (aber eben nicht nach else)
-
das x muss auch noch durch val ersetzt werden.
-
printf("%f\n", sgn(zahl1)); gibt übrigens immer 0 raus, weil sgn zu jeder zeit den rückgabewert 0 hat.
-
hey vielen dank jetzt sehe ich das ganze programm schon klarer das mit dem \n das hab ich auch bemerkt danke noch mal wirklich nett
-
Couterfly schrieb:
hey vielen dank jetzt sehe ich das ganze programm schon klarer das mit dem \n das hab ich auch bemerkt danke noch mal wirklich nett
just as test using off-by-one web browser!
-
... tip gebrauchen ...
Korrekte Interpunktion und Rechtschreibung ...
-
Couterfly schrieb:
#include <stdio.h> float sgn(float val) { if (x<0) { printf("-1"\n); } else if (x>0) { printf("1"\n); } else (x=0) { printf("0"\n); } return 0; }
Wenn das die signum-Funktion sein soll, dann sollte sie die Werte -1, 0 oder 1 zurückgeben, nicht auf die Standardausgabe schreiben.
float sgn(float x) { if (x < 0) return -1; else if (x > 0) return 1; else return 0; }