const std = @import("std"); const complexNumber = struct { real: i32, img: i32, }; pub fn add(num1: *complexNumber, num2: complexNumber) void { num1.real = num1.real + num2.real; num1.img = num1.img + num2.img; } pub fn sub(num1: *complexNumber, num2: complexNumber) void { num1.real = num1.real - num2.real; num1.img = num1.img - num2.img; } pub fn mul(num1: *complexNumber, num2: complexNumber) void { num1.real = (num1.real * num2.real) - (num1.img * num2.img); num1.img = (num1.real * num2.img) + (num1.img * num2.real); } pub fn print(writer: anytype, num: complexNumber) !void { try writer.print("({d} + {d}i)", .{num.real, num.img}); } pub fn main() !void { const writer = std.io.getStdOut().writer(); const num: complexNumber = complexNumber{.real = 1, .img = 2}; try print(writer, num); try writer.print("\n", .{}); var num1: complexNumber = complexNumber{.real = 1, .img = 2}; const num2: complexNumber = complexNumber{.real = 2, .img = 3}; try writer.print("Num1: ", .{}); try print(writer, num1); try writer.print("\n", .{}); try print(writer, num1); try writer.print(" + ", .{}); try print(writer, num2); try writer.print(" = ", .{}); add(&num1, num2); try print(writer, num1); try writer.print("\n", .{}); }