//********************************************************
//
// Assignment 6 - Structures
//
// Name: Heather Grothe
//
// Class: C Programming, Spring 2026
//
// Date: March 7, 2026
//
// Description: Program which determines overtime and
// gross pay for a set of employees with outputs sent
// to standard output (the screen).
//
// Call by Value design
//
//********************************************************
// Define and Includes
#include <stdio.h>
struct countyTotals
{
int totalCorkCodes;
int totalDublinCodes;
int totalGalwayCodes;
int totalLimerickCodes;
int totalTiperaryCodes;
int totalWaterfordCodes;
int totalInvalidCountryCodes;
};
struct countyTotals freqOfIrishCounties(char countyArrayList[], int size);
int main () {
char countylist[] = {'d','w','f','g','t','T','W','z'};
struct countyTotals totals = {0,0,0,0,0,0,0};
totals = freqOfIrishCounties (countylist, 8);
int output = totals.totalCorkCodes;
printf("The output is: %2d", output
);
return 0;
}
struct countyTotals freqOfIrishCounties(char countyList[], int size)
{
struct countyTotals myCountyTotals = {0,0,0,0,0,0,0};
// loop to count each countycode in array
for (int i = 0; i < size; i++)
{
switch (countyList[i])
{
case 'C':
++myCountyTotals.totalCorkCodes;
break;
case 'c':
++myCountyTotals.totalCorkCodes;
break;
case 'D':
++myCountyTotals.totalDublinCodes;
break;
case 'd':
++myCountyTotals.totalDublinCodes;
break;
case 'G':
++myCountyTotals.totalGalwayCodes;
break;
case 'g':
++myCountyTotals.totalGalwayCodes;
break;
case 'L':
++myCountyTotals.totalLimerickCodes;
break;
case 'l':
++myCountyTotals.totalLimerickCodes;
break;
case 'T':
++myCountyTotals.totalTiperaryCodes;
break;
case 't':
++myCountyTotals.totalTiperaryCodes;
break;
case 'W':
++myCountyTotals.totalWaterfordCodes;
break;
case 'w':
++myCountyTotals.totalWaterfordCodes;
break;
default: // records invalid entries
++myCountyTotals.totalInvalidCountryCodes;
}//switch
}//for
return myCountyTotals;
}//freqOfIrishCounties
Ci8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8KLy8gQXNzaWdubWVudCA2IC0gU3RydWN0dXJlcwovLwovLyBOYW1lOiBIZWF0aGVyIEdyb3RoZQovLwovLyBDbGFzczogQyBQcm9ncmFtbWluZywgU3ByaW5nIDIwMjYKLy8KLy8gRGF0ZTogTWFyY2ggNywgMjAyNgovLwovLyBEZXNjcmlwdGlvbjogUHJvZ3JhbSB3aGljaCBkZXRlcm1pbmVzIG92ZXJ0aW1lIGFuZCAKLy8gZ3Jvc3MgcGF5IGZvciBhIHNldCBvZiBlbXBsb3llZXMgd2l0aCBvdXRwdXRzIHNlbnQgCi8vIHRvIHN0YW5kYXJkIG91dHB1dCAodGhlIHNjcmVlbikuCi8vCi8vIENhbGwgYnkgVmFsdWUgZGVzaWduCi8vCi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCi8vIERlZmluZSBhbmQgSW5jbHVkZXMKI2luY2x1ZGUgPHN0ZGlvLmg+CgoJc3RydWN0IGNvdW50eVRvdGFscwoJCXsKCQkJaW50IHRvdGFsQ29ya0NvZGVzOwoJCQlpbnQgdG90YWxEdWJsaW5Db2RlczsKCQkJaW50IHRvdGFsR2Fsd2F5Q29kZXM7CgkJCWludCB0b3RhbExpbWVyaWNrQ29kZXM7CgkJCWludCB0b3RhbFRpcGVyYXJ5Q29kZXM7CgkJCWludCB0b3RhbFdhdGVyZm9yZENvZGVzOwoJCQlpbnQgdG90YWxJbnZhbGlkQ291bnRyeUNvZGVzOwoJCX07CgpzdHJ1Y3QgY291bnR5VG90YWxzIGZyZXFPZklyaXNoQ291bnRpZXMoY2hhciBjb3VudHlBcnJheUxpc3RbXSwgaW50IHNpemUpOwoKaW50IG1haW4gKCkgewoKCQkKCWNoYXIgY291bnR5bGlzdFtdID0geydkJywndycsJ2YnLCdnJywndCcsJ1QnLCdXJywneid9OwoJc3RydWN0IGNvdW50eVRvdGFscyB0b3RhbHMgPSB7MCwwLDAsMCwwLDAsMH07IAoJdG90YWxzID0gZnJlcU9mSXJpc2hDb3VudGllcyAoY291bnR5bGlzdCwgOCk7CgkKCWludCBvdXRwdXQgPSB0b3RhbHMudG90YWxDb3JrQ29kZXM7CgkKCQoKCgkKCXByaW50ZigiVGhlIG91dHB1dCBpczogJTJkIiwgb3V0cHV0KTsKCglyZXR1cm4gMDsKCQp9CgoJCnN0cnVjdCBjb3VudHlUb3RhbHMgZnJlcU9mSXJpc2hDb3VudGllcyhjaGFyIGNvdW50eUxpc3RbXSwgaW50IHNpemUpCnsKICAgIHN0cnVjdCBjb3VudHlUb3RhbHMgbXlDb3VudHlUb3RhbHMgPSB7MCwwLDAsMCwwLDAsMH07CgogICAgLy8gbG9vcCB0byBjb3VudCBlYWNoIGNvdW50eWNvZGUgaW4gYXJyYXkgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykKICAgIHsKICAgICAgICBzd2l0Y2ggKGNvdW50eUxpc3RbaV0pCiAgICAgICAgCiAgICAgICAgewogICAgICAgICAgICBjYXNlICdDJzoKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxDb3JrQ29kZXM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdjJzoKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxDb3JrQ29kZXM7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ0QnOgogICAgICAgICAgICAgICAgKytteUNvdW50eVRvdGFscy50b3RhbER1YmxpbkNvZGVzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgY2FzZSAnZCc6CiAgICAgICAgICAgICAgICArK215Q291bnR5VG90YWxzLnRvdGFsRHVibGluQ29kZXM7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgJ0cnOgogICAgICAgICAgICAgICAgKytteUNvdW50eVRvdGFscy50b3RhbEdhbHdheUNvZGVzOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgY2FzZSAnZyc6CiAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxHYWx3YXlDb2RlczsKICAgICAgICAgICAgICAgIGJyZWFrOyAKCiAgICAgICAgICAgIGNhc2UgJ0wnOgogICAgICAgICAgICAgICAgKytteUNvdW50eVRvdGFscy50b3RhbExpbWVyaWNrQ29kZXM7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdsJzoKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxMaW1lcmlja0NvZGVzOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdUJzoKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxUaXBlcmFyeUNvZGVzOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICd0JzoKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxUaXBlcmFyeUNvZGVzOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdXJzoKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxXYXRlcmZvcmRDb2RlczsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGNhc2UgJ3cnOgogICAgICAgICAgICAgICAgKytteUNvdW50eVRvdGFscy50b3RhbFdhdGVyZm9yZENvZGVzOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OiAvLyByZWNvcmRzIGludmFsaWQgZW50cmllcyAKICAgICAgICAgICAgICAgICsrbXlDb3VudHlUb3RhbHMudG90YWxJbnZhbGlkQ291bnRyeUNvZGVzOwogICAgICAgICAgICAgICAgCiAgICAgICAgfS8vc3dpdGNoCiAgICAgICAgCiAgICB9Ly9mb3IKCiAgICByZXR1cm4gbXlDb3VudHlUb3RhbHM7CiAgICAKfS8vZnJlcU9mSXJpc2hDb3VudGllcw==