summaryrefslogtreecommitdiff
path: root/src/cmd/coin
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2024-03-05 18:46:44 -0500
committerJacob McDonnell <jacob@jacobmcdonnell.com>2024-03-05 18:46:44 -0500
commitc40f400f6ab879e08d54de753aabc987fd6ba07a (patch)
tree295f95070362d14d987638b558ad6bb1ba2415e2 /src/cmd/coin
parente32262d86c90e2ac73b2c38a47a1bb6b60935098 (diff)
Added a simple shell, jsh
Diffstat (limited to 'src/cmd/coin')
-rw-r--r--src/cmd/coin/coin.c37
-rwxr-xr-x[-rw-r--r--]src/cmd/coin/makefile8
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