Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 28 additions & 47 deletions leapYear.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
/**
* This program determines if various years are leap
* years or not.
*
* This program determines if various years are leap years or not.
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
Expand All @@ -17,67 +16,49 @@ int isLeapYear(int year);
int main(int argc, char **argv) {

bool reportPass = false;
if(argc > 1 && strcmp(argv[1], "-reportPass") == 0) {
if (argc > 1 && strcmp(argv[1], "-reportPass") == 0) {
reportPass = true;
}

int year;
int numPassed = 0;
int numFailed = 0;

//Hard-coded ad-hoc test cases
//Do not change these, add your own test cases
//below. All test cases should pass.

year = 2000;
printf("Test Case 1: year = %d: ", year);
if(!isLeapYear(year)) {
printf("FAILED!\n");
numFailed = numFailed + 1;
} else {
printf("PASSED!\n");
numPassed = numPassed + 1;
}

year = 2001;
printf("Test Case 2: year = %d: ", year);
if(isLeapYear(year)) {
printf("FAILED!\n");
numFailed = numFailed + 1;
} else {
printf("PASSED!\n");
numPassed = numPassed + 1;
}
// Test cases
int testCases[] = {2000, 2001, 2100, 2004, 1900, 2024, 2023, 2012};
int numTestCases = sizeof(testCases) / sizeof(testCases[0]);

year = 2100;
printf("Test Case 3: year = %d: ", year);
if(isLeapYear(year)) {
printf("FAILED!\n");
numFailed = numFailed + 1;
} else {
printf("PASSED!\n");
numPassed = numPassed + 1;
for (int i = 0; i < numTestCases; i++) {
int year = testCases[i];
printf("Test Case %d: year = %d: ", i + 1, year);
if (isLeapYear(year)) {
printf("PASSED!\n");
numPassed++;
} else {
printf("FAILED!\n");
numFailed++;
}
}

//TODO: write *at least* 3 more of your own
// test cases here, they should all pass!

printf("\n\n");
printf("Summary:\n");
printf("\nSummary:\n");
printf("Number of test cases passed: %d\n", numPassed);
printf("Number of test cases failed: %d\n", numFailed);
printf("Percentage Passed: %.2f%%\n", (double) numPassed / (numPassed + numFailed) * 100.0);
printf("Percentage Passed: %.2f%%\n", (double)numPassed / (numPassed + numFailed) * 100.0);

if(reportPass) {
if (reportPass) {
return numPassed;
} else {
return numFailed;
}
}

int isLeapYear(int year) {
//TODO: Write your logic here
// The year is stored in the variable year
// Your function should return true (1) if it represents a leap year
// and false (0) if it does not.
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
return 1; // It's a leap year
} else {
return 0; // It's not a leap year
}
}