From 55d6a8c5a87a3152cc05591a8ea8f4437e93d686 Mon Sep 17 00:00:00 2001 From: Myles Busig Date: Thu, 31 Oct 2024 01:16:38 -0700 Subject: [PATCH] Add problem 10 solution --- CMakeLists.txt | 2 ++ include/p10.h | 7 +++++++ src/main.c | 18 ++++++++++++++++++ src/p10.c | 16 ++++++++++++++++ 4 files changed, 43 insertions(+) create mode 100644 include/p10.h create mode 100644 src/p10.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 49a2609..57a11da 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,3 +12,5 @@ set(proj_include "include") target_sources(${PROJECT_NAME} PRIVATE "${proj_sources}") target_include_directories(${PROJECT_NAME} PRIVATE "${proj_include}") +target_link_libraries(${PROJECT_NAME} m) + diff --git a/include/p10.h b/include/p10.h new file mode 100644 index 0000000..df34316 --- /dev/null +++ b/include/p10.h @@ -0,0 +1,7 @@ +#ifndef P10_H +#define P10_H + +void calculate_magnitudes(double (*vectors)[8], int num_vectors, double *out_magnitudes); + +#endif + diff --git a/src/main.c b/src/main.c index f14bc4c..5fed810 100644 --- a/src/main.c +++ b/src/main.c @@ -9,6 +9,7 @@ #include "p7.h" #include "p8.h" #include "p9.h" +#include "p10.h" void print_int_arr(int* arr, int size) { for (int i = 0; i < size; ++i) { @@ -114,6 +115,23 @@ int main(void) { printf("Did not find any matching products!\n"); } + // Problem 10 + printf("Problem 10:\n"); + + double vectors[3][8] = { + { 1, 2, 3, 4, 5, 6, 7, 8 }, + { 0, 0, 0, 0, 0, 5, 0, 0 }, + { 1, 1, 1, 1, 1, 1, 1, 1 }, + }; + + double magnitudes[3] = { 0 }; + + calculate_magnitudes(vectors, 3, magnitudes); + + for (int i = 0; i < 3; ++i) { + printf("magnitude %d: %.2lf\n", i, magnitudes[i]); + } + return 0; } diff --git a/src/p10.c b/src/p10.c new file mode 100644 index 0000000..ae9317c --- /dev/null +++ b/src/p10.c @@ -0,0 +1,16 @@ +#include "p10.h" + +#include + +void calculate_magnitudes(double (*vectors)[8], int num_vectors, double* out_magnitudes) { + for (int i = 0; i < num_vectors; ++i) { + double sum_squares = 0.0; + + for (int n = 0; n < 8; ++n) { + sum_squares += pow(vectors[i][n], 2); + } + + out_magnitudes[i] = sqrt(sum_squares); + } +} +