summaryrefslogtreecommitdiff
path: root/exercises/094_c_math.zig
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/094_c_math.zig')
-rw-r--r--exercises/094_c_math.zig41
1 files changed, 0 insertions, 41 deletions
diff --git a/exercises/094_c_math.zig b/exercises/094_c_math.zig
deleted file mode 100644
index ec59a86..0000000
--- a/exercises/094_c_math.zig
+++ /dev/null
@@ -1,41 +0,0 @@
-//
-// Often, C functions are used where no equivalent Zig function exists
-// yet. Okay, that's getting less and less. ;-)
-//
-// Since the integration of a C function is very simple, as already
-// seen in the last exercise, it naturally offers itself to use the
-// very large variety of C functions for our own programs.
-// As an example:
-//
-// Let's say we have a given angle of 765.2 degrees. If we want to
-// normalize that, it means that we have to subtract X * 360 degrees
-// to get the correct angle.
-// How could we do that? A good method is to use the modulo function.
-// But if we write "765.2 % 360", it only works with float values
-// that are known at compile time.
-// In Zig, we would use @mod(a, b) instead.
-//
-// Let us now assume that we cannot do this in Zig, but only with
-// a C function from the standard library. In the library "math",
-// there is a function called "fmod"; the "f" stands for floating
-// and means that we can solve modulo for real numbers. With this
-// function, it should be possible to normalize our angle.
-// Let's go.
-
-const std = @import("std");
-
-const c = @cImport({
- // What do we need here?
- ???
-});
-
-pub fn main() !void {
- const angle = 765.2;
- const circle = 360;
-
- // Here we call the C function 'fmod' to get our normalized angle.
- const result = c.fmod(angle, circle);
-
- // We use formatters for the desired precision and to truncate the decimal places
- std.debug.print("The normalized angle of {d: >3.1} degrees is {d: >3.1} degrees.\n", .{ angle, result });
-}