From c40f400f6ab879e08d54de753aabc987fd6ba07a Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Tue, 5 Mar 2024 18:46:44 -0500 Subject: Added a simple shell, jsh --- src/cmd/coin/coin.c | 37 +++++++++++++++++-------------------- src/cmd/coin/makefile | 8 +++++--- 2 files changed, 22 insertions(+), 23 deletions(-) mode change 100644 => 100755 src/cmd/coin/makefile (limited to 'src/cmd/coin') diff --git a/src/cmd/coin/coin.c b/src/cmd/coin/coin.c index c18d66c..4471959 100644 --- a/src/cmd/coin/coin.c +++ b/src/cmd/coin/coin.c @@ -4,61 +4,58 @@ #include #include -unsigned long coinFlip (unsigned long times); +int coinFlip (int times); int main (int argc, char *argv[]) { - int nflag = 0, i, mflag = 0; - unsigned long times = 1, tails, heads; + int nflag = 0, times = 1, i, tails, heads; + float ph, pt; argc--; for (i = 1; i <= argc; i++) { - if (strcmp(argv[i], "-n") == 0) + if (strcmp(argv[i], "-n") == 0) { nflag++; - else if (strcmp(argv[i], "-m") == 0) { - mflag++; + } else if (strcmp(argv[i], "-m") == 0) { + times = INT_MAX; break; - } else if (nflag == 1) + } else if (nflag == 1) { times = atoi(argv[i]); if (times == 0) { printf("Non Integer Value Inputted\n"); return -1; } + break; + } } - if (mflag == 1) - times = ULONG_MAX; - if (times == 1) printf("%s\n", coinFlip(times) ? "Heads" : "Tails"); else { tails = coinFlip(times); heads = times - tails; - float ph = (float)heads/times, pt = (float)tails/times; + ph = (float)heads/times; + pt = (float)tails/times; - printf("Heads: %lu\nTails: %ld\nProb Heads: %f\nProb Tails: %f\n", heads, tails, ph, pt); + printf("Heads: %d\nTails: %d\nProb Heads: %f\nProb Tails: %f\n", heads, tails, ph, pt); } return 0; } /* coinFlip: Flips a coin n numbers of times and returns the number of tails */ -unsigned long -coinFlip (unsigned long times) +int +coinFlip (int times) { - unsigned long tails, i; - int c; + int tails, i, c; time_t t; srand((unsigned) time(&t)); - tails = 0; - - for (i = 0; i < times; i++) { + for (i = tails = 0; i < times; i++) { c = rand() % 2; if (c == 1) tails++; } return tails; -} \ No newline at end of file +} diff --git a/src/cmd/coin/makefile b/src/cmd/coin/makefile old mode 100644 new mode 100755 index cf8289d..7cd5d6e --- a/src/cmd/coin/makefile +++ b/src/cmd/coin/makefile @@ -1,10 +1,12 @@ -all: coin +CFLAGS=-Wall -Werror + +build: coin @cp coin $(PROROOT)/build/bin/coin coin: coin.c - $(CC) -o coin coin.c + $(CC) $(CFLAGS) -o coin coin.c clean: @rm -r coin -.PHONY: all clean \ No newline at end of file +.PHONY: build clean -- cgit v1.2.3