#include <stdio.h>
struct countyTotals
{
int totalCorkCodes;
int totalDublinCodes;
int totalGalwayCodes;
int totalLimerickCodes;
int totalTiperaryCodes;
int totalWaterfordCodes;
int totalInvalidCountryCodes;
};
// **************************************************
// Function: freqOfIrishCounties
//
// Description: Shows the total number of occurrences
// of each county code (same as where the cars are
// registered) after being given an array of any size
//
// Parameters: countyArrayList[] - array with county list
// size - size of the array
//
// Returns: structure updated with total number of
// occurrences for each county code
//
// ***************************************************
// add function block comments
struct countyTotals freqOfIrishCounties(char countyArrayList[], int size)
{
struct countyTotals myCountyTotals = {0,0,0,0,0,0,0}; // holds the country counts
// and initializes them to zero
// Review each of the county codes in the array
for(int i = 0; i < size; i++)
{
// increments the total of the current county character value
// ... note that case does not matter, both upper and lower count the same
// towards the totals
switch (countyArrayList[i])
{
// add case statements ...
// for each county
// and increment members (the counts) as needed
// in the struct variable named myCountyTotals
case 'C': case 'c':
myCountyTotals.totalCorkCodes++;
break;
case 'D': case 'd':
myCountyTotals.totalDublinCodes++;
break;
case 'G': case 'g':
myCountyTotals.totalGalwayCodes++;
break;
case 'L': case 'l':
myCountyTotals.totalLimerickCodes++;
break;
case 'T': case 't':
myCountyTotals.totalTiperaryCodes++;
break;
case 'W': case 'w':
myCountyTotals.totalWaterfordCodes++;
break;
default:
myCountyTotals.totalInvalidCountryCodes++;
} // switch
} // for
return (myCountyTotals);
} // freqOfIrishCounties
int main(void) {
// your code goes here
char countyCodes[] = {'C', 'c', 'E', 'G', 'G', 'L', 'l', 'l', 'T', 'W', 'J', 'd'};
struct countyTotals result = freqOfIrishCounties(countyCodes, 12);
printf("Cork: %d\n", result.
totalCorkCodes); printf("Dublin: %d\n", result.
totalDublinCodes); printf("Galway: %d\n", result.
totalGalwayCodes); printf("Limerick: %d\n", result.
totalLimerickCodes); printf("Tipperary: %d\n", result.
totalTiperaryCodes); printf("Waterford: %d\n", result.
totalWaterfordCodes); printf("Invalid County Codes: %d\n", result.
totalInvalidCountryCodes);
return 0;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgY291bnR5VG90YWxzCnsKCWludCB0b3RhbENvcmtDb2RlczsKICAgIGludCB0b3RhbER1YmxpbkNvZGVzOwogICAgaW50IHRvdGFsR2Fsd2F5Q29kZXM7CiAgICBpbnQgdG90YWxMaW1lcmlja0NvZGVzOwogICAgaW50IHRvdGFsVGlwZXJhcnlDb2RlczsKICAgIGludCB0b3RhbFdhdGVyZm9yZENvZGVzOwogICAgaW50IHRvdGFsSW52YWxpZENvdW50cnlDb2RlczsKfTsKCgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBGdW5jdGlvbjogZnJlcU9mSXJpc2hDb3VudGllcwovLwovLyBEZXNjcmlwdGlvbjogU2hvd3MgdGhlIHRvdGFsIG51bWJlciBvZiBvY2N1cnJlbmNlcwovLyBvZiBlYWNoIGNvdW50eSBjb2RlIChzYW1lIGFzIHdoZXJlIHRoZSBjYXJzIGFyZSAKLy8gcmVnaXN0ZXJlZCkgYWZ0ZXIgYmVpbmcgZ2l2ZW4gYW4gYXJyYXkgb2YgYW55IHNpemUKLy8KLy8gUGFyYW1ldGVyczogY291bnR5QXJyYXlMaXN0W10gLSBhcnJheSB3aXRoIGNvdW50eSBsaXN0Ci8vCSAgICAgICBzaXplIC0gc2l6ZSBvZiB0aGUgYXJyYXkKLy8KLy8gUmV0dXJuczogIHN0cnVjdHVyZSB1cGRhdGVkIHdpdGggdG90YWwgbnVtYmVyIG9mIAovLyBvY2N1cnJlbmNlcyBmb3IgZWFjaCBjb3VudHkgY29kZQovLwovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioJCi8vIGFkZCBmdW5jdGlvbiBibG9jayBjb21tZW50cwpzdHJ1Y3QgY291bnR5VG90YWxzIGZyZXFPZklyaXNoQ291bnRpZXMoY2hhciBjb3VudHlBcnJheUxpc3RbXSwgaW50IHNpemUpCnsKCiAgICBzdHJ1Y3QgY291bnR5VG90YWxzIG15Q291bnR5VG90YWxzID0gezAsMCwwLDAsMCwwLDB9OyAgLy8gaG9sZHMgdGhlIGNvdW50cnkgY291bnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIGluaXRpYWxpemVzIHRoZW0gdG8gemVybwoKICAgIC8vIFJldmlldyBlYWNoIG9mIHRoZSBjb3VudHkgY29kZXMgaW4gdGhlIGFycmF5CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQogICAgewogICAgICAgIC8vIGluY3JlbWVudHMgdGhlIHRvdGFsIG9mIHRoZSBjdXJyZW50IGNvdW50eSBjaGFyYWN0ZXIgdmFsdWUKICAgICAgICAvLyAuLi4gbm90ZSB0aGF0IGNhc2UgZG9lcyBub3QgbWF0dGVyLCBib3RoIHVwcGVyIGFuZCBsb3dlciBjb3VudCB0aGUgc2FtZQogICAgICAgIC8vIHRvd2FyZHMgdGhlIHRvdGFscwogICAgICAgIHN3aXRjaCAoY291bnR5QXJyYXlMaXN0W2ldKQogICAgICAgIHsKCiAgICAgICAgICAgIC8vIGFkZCBjYXNlIHN0YXRlbWVudHMgLi4uCiAgICAgICAgICAgIC8vIGZvciBlYWNoIGNvdW50eSAKICAgICAgICAgICAgLy8gYW5kIGluY3JlbWVudCBtZW1iZXJzICh0aGUgY291bnRzKSBhcyBuZWVkZWQKICAgICAgICAgICAgLy8gaW4gdGhlIHN0cnVjdCB2YXJpYWJsZSBuYW1lZCBteUNvdW50eVRvdGFscwogICAgICAgICAgICBjYXNlICdDJzogY2FzZSAnYyc6ICAKICAgICAgICAgICAgCW15Q291bnR5VG90YWxzLnRvdGFsQ29ya0NvZGVzKys7IAogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ0QnOiBjYXNlICdkJzogCiAgICAgICAgICAgIAlteUNvdW50eVRvdGFscy50b3RhbER1YmxpbkNvZGVzKys7IAogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ0cnOiBjYXNlICdnJzogCiAgICAgICAgICAgIAlteUNvdW50eVRvdGFscy50b3RhbEdhbHdheUNvZGVzKys7IAogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ0wnOiBjYXNlICdsJzogCiAgICAgICAgICAgIAlteUNvdW50eVRvdGFscy50b3RhbExpbWVyaWNrQ29kZXMrKzsgCiAgICAgICAgICAgIAlicmVhazsKICAgICAgICAgICAgY2FzZSAnVCc6IGNhc2UgJ3QnOiAKICAgICAgICAgICAgCW15Q291bnR5VG90YWxzLnRvdGFsVGlwZXJhcnlDb2RlcysrOyAKICAgICAgICAgICAgCWJyZWFrOwogICAgICAgICAgICBjYXNlICdXJzogY2FzZSAndyc6CiAgICAgICAgICAgIAlteUNvdW50eVRvdGFscy50b3RhbFdhdGVyZm9yZENvZGVzKys7IAogICAgICAgICAgICAJYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6IAogICAgICAgICAgICAJbXlDb3VudHlUb3RhbHMudG90YWxJbnZhbGlkQ291bnRyeUNvZGVzKys7IAoKICAgICAgICB9IC8vIHN3aXRjaAogICAgfSAvLyBmb3IKCiAgICByZXR1cm4gKG15Q291bnR5VG90YWxzKTsKCn0gLy8gZnJlcU9mSXJpc2hDb3VudGllcwppbnQgbWFpbih2b2lkKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgljaGFyIGNvdW50eUNvZGVzW10gPSB7J0MnLCAnYycsICdFJywgJ0cnLCAnRycsICdMJywgJ2wnLCAnbCcsICdUJywgJ1cnLCAnSicsICdkJ307CgoJc3RydWN0IGNvdW50eVRvdGFscyByZXN1bHQgPSBmcmVxT2ZJcmlzaENvdW50aWVzKGNvdW50eUNvZGVzLCAxMik7CgogICAgcHJpbnRmKCJDb3JrOiAlZFxuIiwgcmVzdWx0LnRvdGFsQ29ya0NvZGVzKTsKICAgIHByaW50ZigiRHVibGluOiAlZFxuIiwgcmVzdWx0LnRvdGFsRHVibGluQ29kZXMpOwogICAgcHJpbnRmKCJHYWx3YXk6ICVkXG4iLCByZXN1bHQudG90YWxHYWx3YXlDb2Rlcyk7CiAgICBwcmludGYoIkxpbWVyaWNrOiAlZFxuIiwgcmVzdWx0LnRvdGFsTGltZXJpY2tDb2Rlcyk7CiAgICBwcmludGYoIlRpcHBlcmFyeTogJWRcbiIsIHJlc3VsdC50b3RhbFRpcGVyYXJ5Q29kZXMpOwogICAgcHJpbnRmKCJXYXRlcmZvcmQ6ICVkXG4iLCByZXN1bHQudG90YWxXYXRlcmZvcmRDb2Rlcyk7CiAgICBwcmludGYoIkludmFsaWQgQ291bnR5IENvZGVzOiAlZFxuIiwgcmVzdWx0LnRvdGFsSW52YWxpZENvdW50cnlDb2Rlcyk7CgogICAgcmV0dXJuIDA7CglyZXR1cm4gMDsKfQo=