ziglings/exercises/05_arrays2.zig

48 lines
1.2 KiB
Zig
Raw Normal View History

2021-01-04 18:40:34 -05:00
//
// Zig has some fun array operators.
//
// You can use '++' to concatenate two arrays:
//
2021-01-04 18:40:34 -05:00
// const a = [_]u8{ 1,2 };
// const b = [_]u8{ 3,4 };
// const c = a ++ b ++ [_]u8{ 5 }; // equals 1 2 3 4 5
2021-01-04 18:40:34 -05:00
//
// You can use '**' to repeat an array:
//
// const d = [_]u8{ 1,2,3 } ** 2; // equals 1 2 3 1 2 3
2021-01-04 18:40:34 -05:00
//
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
2021-01-04 18:40:34 -05:00
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
2021-01-04 18:40:34 -05:00
const bit_pattern = [_]u8{ ??? } ** 3;
// Okay, that's all of the problems. Let's see the results.
//
2021-01-04 18:40:34 -05:00
// We could print these arrays with leet[0], leet[1],...but let's
// have a little preview of Zig "for" loops instead:
2021-01-04 18:40:34 -05:00
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", .{});
}