From b2ff6f88e3ff01ddb9c2d8b1a66168201a514803 Mon Sep 17 00:00:00 2001 From: Atlas Cove Date: Sat, 30 Sep 2023 16:55:18 +0100 Subject: [PATCH] added back C version --- Makefile | 2 +- c/add.c | 25 +++++++++++++++++++++++++ c/div.c | 25 +++++++++++++++++++++++++ mean.c => c/mean.c | 0 c/mod.c | 25 +++++++++++++++++++++++++ c/mul.c | 25 +++++++++++++++++++++++++ c/sub.c | 25 +++++++++++++++++++++++++ sum.c => c/sum.c | 0 8 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 c/add.c create mode 100644 c/div.c rename mean.c => c/mean.c (100%) create mode 100644 c/mod.c create mode 100644 c/mul.c create mode 100644 c/sub.c rename sum.c => c/sum.c (100%) diff --git a/Makefile b/Makefile index 607ce20..f7814d5 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ #TODO: find way of installing shell library with make -files = mean sum +files = c/add c/div c/mean c/mod c/mul c/sub c/sum all: $(files) diff --git a/c/add.c b/c/add.c new file mode 100644 index 0000000..4815fb2 --- /dev/null +++ b/c/add.c @@ -0,0 +1,25 @@ +#include +#ifndef eprintf +#define eprintf(...) fprintf(stderr, __VA_ARGS__) +#endif + +int main(int argc, char **argv) { + int v1; + int v2; + int out; + int e1; + int e2; + + e1 = sscanf(argv[1], "%i", &v1); + e2 = sscanf(argv[2], "%i", &v2); + if(e1==EOF) { + eprintf("%s: argument 1 cannot be parsed as int", *argv); + return 1; + } else if(e2==EOF) { + eprintf("%s: argument 2 cannot be parsed as int", *argv); + return 1; + } + out=v1+v2; + printf("%d\n",out); + return 0; +} diff --git a/c/div.c b/c/div.c new file mode 100644 index 0000000..bb279fe --- /dev/null +++ b/c/div.c @@ -0,0 +1,25 @@ +#include +#ifndef eprintf +#define eprintf(...) fprintf(stderr, __VA_ARGS__) +#endif + +int main(int argc, char **argv) { + int v1; + int v2; + int out; + int e1; + int e2; + + e1 = sscanf(argv[1], "%i", &v1); + e2 = sscanf(argv[2], "%i", &v2); + if(e1==EOF) { + eprintf("%s: argument 1 cannot be parsed as int", *argv); + return 1; + } else if(e2==EOF) { + eprintf("%s: argument 2 cannot be parsed as int", *argv); + return 1; + } + out=v1/v2; + printf("%d\n",out); + return 0; +} diff --git a/mean.c b/c/mean.c similarity index 100% rename from mean.c rename to c/mean.c diff --git a/c/mod.c b/c/mod.c new file mode 100644 index 0000000..56a9434 --- /dev/null +++ b/c/mod.c @@ -0,0 +1,25 @@ +#include +#ifndef eprintf +#define eprintf(...) fprintf(stderr, __VA_ARGS__) +#endif + +int main(int argc, char **argv) { + int v1; + int v2; + int out; + int e1; + int e2; + + e1 = sscanf(argv[1], "%i", &v1); + e2 = sscanf(argv[2], "%i", &v2); + if(e1==EOF) { + eprintf("%s: argument 1 cannot be parsed as int", *argv); + return 1; + } else if(e2==EOF) { + eprintf("%s: argument 2 cannot be parsed as int", *argv); + return 1; + } + out=v1%v2; + printf("%d\n",out); + return 0; +} diff --git a/c/mul.c b/c/mul.c new file mode 100644 index 0000000..b16bbf8 --- /dev/null +++ b/c/mul.c @@ -0,0 +1,25 @@ +#include +#ifndef eprintf +#define eprintf(...) fprintf(stderr, __VA_ARGS__) +#endif + +int main(int argc, char **argv) { + int v1; + int v2; + int out; + int e1; + int e2; + + e1 = sscanf(argv[1], "%i", &v1); + e2 = sscanf(argv[2], "%i", &v2); + if(e1==EOF) { + eprintf("%s: argument 1 cannot be parsed as int", *argv); + return 1; + } else if(e2==EOF) { + eprintf("%s: argument 2 cannot be parsed as int", *argv); + return 1; + } + out=v1*v2; + printf("%d\n",out); + return 0; +} diff --git a/c/sub.c b/c/sub.c new file mode 100644 index 0000000..02ba651 --- /dev/null +++ b/c/sub.c @@ -0,0 +1,25 @@ +#include +#ifndef eprintf +#define eprintf(...) fprintf(stderr, __VA_ARGS__) +#endif + +int main(int argc, char **argv) { + int v1; + int v2; + int out; + int e1; + int e2; + + e1 = sscanf(argv[1], "%i", &v1); + e2 = sscanf(argv[2], "%i", &v2); + if(e1==EOF) { + eprintf("%s: argument 1 cannot be parsed as int", *argv); + return 1; + } else if(e2==EOF) { + eprintf("%s: argument 2 cannot be parsed as int", *argv); + return 1; + } + out=v1-v2; + printf("%d\n",out); + return 0; +} diff --git a/sum.c b/c/sum.c similarity index 100% rename from sum.c rename to c/sum.c