Guten Morgen, sieht jemand den Fehler in dem unten stehenden Übungsprogramm? Bei 180° sollte ja eigentlich ein Sinus von 0 rauskommen... tut es aber nicht. Gruß
1 | #include <stdio.h> |
2 | |
3 | #define PI (3.14159f)
|
4 | #define DEG2RAD(x) (PI * (x) / 180.f)
|
5 | #define RAD2DEG(a) (180.f * (a) / PI)
|
6 | |
7 | float power( float base, int exp ) { |
8 | |
9 | float result = 1.f; |
10 | int n = 0; |
11 | |
12 | for( n=0; n<exp; ++n ) { |
13 | result *= base; |
14 | }
|
15 | |
16 | return result; |
17 | }
|
18 | |
19 | float sine( float a ) { |
20 | return (a - power(a, 3) / 6.f + power(a, 5) / 120.f ); |
21 | }
|
22 | |
23 | int main( void ) { |
24 | |
25 | float angleDegree = 0.f; |
26 | float angleRadian = 0.f; |
27 | |
28 | puts( "Sinus mit Reihenentwicklung" ); |
29 | |
30 | printf( "Winkel eingeben: " ); |
31 | scanf( "%f", &angleDegree ); |
32 | angleRadian = DEG2RAD( angleDegree ); |
33 | |
34 | printf("Sinus: %f\n", RAD2DEG( sine(angleRadian) ) ); |
35 | |
36 | return 0; |
37 | }
|