aboutsummaryrefslogtreecommitdiff
path: root/exercises/05_arrays2.zig
diff options
context:
space:
mode:
authorDave Gauer <dave@ratfactor.com>2021-02-09 18:36:57 -0500
committerDave Gauer <dave@ratfactor.com>2021-02-09 18:36:57 -0500
commit55ad7c32f2d534b1fbd438204d21738f958c51a5 (patch)
tree16be4b53193105a759b3eec25be5e664d41c428d /exercises/05_arrays2.zig
parentcf0920de31e9b5f3c5ba6de19a1b4c8d0c58b907 (diff)
downloadziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.gz
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.bz2
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.xz
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.zip
Moved exercises to exercises because exercises
Diffstat (limited to 'exercises/05_arrays2.zig')
-rw-r--r--exercises/05_arrays2.zig47
1 files changed, 47 insertions, 0 deletions
diff --git a/exercises/05_arrays2.zig b/exercises/05_arrays2.zig
new file mode 100644
index 0000000..9282a31
--- /dev/null
+++ b/exercises/05_arrays2.zig
@@ -0,0 +1,47 @@
+//
+// Zig has some fun array operators.
+//
+// You can use '++' to concatenate two arrays:
+//
+// const a = [_]u8{ 1,2 };
+// const b = [_]u8{ 3,4 };
+// const c = a ++ b ++ [_]u8{ 5 }; // equals 1 2 3 4 5
+//
+// You can use '**' to repeat an array:
+//
+// const d = [_]u8{ 1,2,3 } ** 2; // equals 1 2 3 1 2 3
+//
+const std = @import("std");
+
+pub fn main() void {
+ const le = [_]u8{ 1, 3 };
+ const et = [_]u8{ 3, 7 };
+
+ // (Problem 1)
+ // Please set this array concatenating the two arrays above.
+ // It should result in: 1 3 3 7
+ const leet = ???;
+
+ // (Problem 2)
+ // Please set this array to using repetition.
+ // It should result in: 1 0 0 1 1 0 0 1 1 0 0 1
+ const bit_pattern = [_]u8{ ??? } ** 3;
+
+ // Okay, that's all of the problems. Let's see the results.
+ //
+ // We could print these arrays with leet[0], leet[1],...but let's
+ // have a little preview of Zig "for" loops instead:
+ std.debug.print("LEET: ", .{});
+
+ for (leet) |*n| {
+ std.debug.print("{}", .{n.*});
+ }
+
+ std.debug.print(", Bits: ", .{});
+
+ for (bit_pattern) |*n| {
+ std.debug.print("{}", .{n.*});
+ }
+
+ std.debug.print("\n", .{});
+}