diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2024-03-05 18:46:44 -0500 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2024-03-05 18:46:44 -0500 |
| commit | c40f400f6ab879e08d54de753aabc987fd6ba07a (patch) | |
| tree | 295f95070362d14d987638b558ad6bb1ba2415e2 /src/cmd/coin | |
| parent | e32262d86c90e2ac73b2c38a47a1bb6b60935098 (diff) | |
Added a simple shell, jsh
Diffstat (limited to 'src/cmd/coin')
| -rw-r--r-- | src/cmd/coin/coin.c | 37 | ||||
| -rwxr-xr-x[-rw-r--r--] | src/cmd/coin/makefile | 8 |
2 files changed, 22 insertions, 23 deletions
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 <string.h> #include <limits.h> -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 index cf8289d..7cd5d6e 100644..100755 --- 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 |
