#include <stdio.h>
// **************************************************
// Function: calcLetterGrade
//
// Description: Given a test score - will return the letter grade
//
//
// Parameters: score - the score in number for the test
//
// Returns: A-F for the letter grade. I for invalid
//
// ***************************************************
char calcLetterGrade (int score)
{
char result; /* letter grade result */
// Check for invalid score
if (score > 100 || score < 0)
{
return 'I'; //Invalid
}
// map score to letter grade
if (score >= 90)
result = 'A';
else if (score >= 80)
result = 'B';
else if (score >= 70)
result = 'C';
else if (score >= 60)
result = 'D';
else
result = 'F';
return result;
}
struct countyTotals
{
int totalCorkCodes;
int totalDublinCodes;
int totalGalwayCodes;
int totalLimerickCodes;
int totalTiperaryCodes;
int totalWaterfordCodes;
int totalInvalidCountryCodes;
};
// **************************************************
// Function: freqOfIrishCounties
//
// Description: Frequency calculator for Irish Couties
//
//
// Parameters: countyArrayList - An array of county charachter codes
// size - length of the array
//
// Returns: the countryTotals struct, populated with the correct number
//
// ***************************************************
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])
{
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 min(int value1, int value2, int value3, int value4)
{
int min4 = ((value1 < value2) && (value1 < value3) && (value1 < value4)) ? value1 : // value1 is the smallest
((value2 < value1) && (value2 < value3) && (value2 < value4)) ? value2 : // value2 is smallest
((value3 < value1) && (value3 < value2) && (value3 < value4)) ? value3 : // value3 is smallest
value4; // otherwise value4 is smallest
return min4;
}
int main(void) {
int arr[] = {1,1,1,2,2,2};
char countyCodes[] = {'C', 'c', 'E', 'G', 'G', 'L', 'l', 'l', 'T', 'W', 'J', 'd'};
printf("area is: %i", freqOfIrishCounties
(countyCodes
, 12).
totalWaterfordCodes); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBGdW5jdGlvbjogY2FsY0xldHRlckdyYWRlCi8vCi8vIERlc2NyaXB0aW9uOiBHaXZlbiBhIHRlc3Qgc2NvcmUgLSB3aWxsIHJldHVybiB0aGUgbGV0dGVyIGdyYWRlCi8vCi8vCi8vIFBhcmFtZXRlcnM6IHNjb3JlIC0gdGhlIHNjb3JlIGluIG51bWJlciBmb3IgdGhlIHRlc3QKLy8KLy8gUmV0dXJuczogICAgQS1GIGZvciB0aGUgbGV0dGVyIGdyYWRlLiBJIGZvciBpbnZhbGlkCi8vCi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpjaGFyIGNhbGNMZXR0ZXJHcmFkZSAoaW50IHNjb3JlKQp7CiAgICBjaGFyIHJlc3VsdDsgLyogbGV0dGVyIGdyYWRlIHJlc3VsdCAqLwoKICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIHNjb3JlCiAgICBpZiAoc2NvcmUgPiAxMDAgfHwgc2NvcmUgPCAwKQogICAgewogICAgCXJldHVybiAnSSc7IC8vSW52YWxpZAogICAgfQogICAgCiAgICAvLyBtYXAgc2NvcmUgdG8gbGV0dGVyIGdyYWRlCiAgICBpZiAoc2NvcmUgPj0gOTApIAogICAgICAgIHJlc3VsdCA9ICdBJzsKICAgIGVsc2UgaWYgKHNjb3JlID49IDgwKQogICAgCXJlc3VsdCA9ICdCJzsKICAgIGVsc2UgaWYgKHNjb3JlID49IDcwKQogICAgCXJlc3VsdCA9ICdDJzsKICAgIGVsc2UgaWYgKHNjb3JlID49IDYwKQogICAgCXJlc3VsdCA9ICdEJzsKICAgIGVsc2UKICAgICAgICByZXN1bHQgPSAnRic7CiAgICAKCiAgICByZXR1cm4gcmVzdWx0OyAKfQoKCnN0cnVjdCBjb3VudHlUb3RhbHMKewogICAgaW50IHRvdGFsQ29ya0NvZGVzOwogICAgaW50IHRvdGFsRHVibGluQ29kZXM7CiAgICBpbnQgdG90YWxHYWx3YXlDb2RlczsKICAgIGludCB0b3RhbExpbWVyaWNrQ29kZXM7CiAgICBpbnQgdG90YWxUaXBlcmFyeUNvZGVzOwogICAgaW50IHRvdGFsV2F0ZXJmb3JkQ29kZXM7CiAgICBpbnQgdG90YWxJbnZhbGlkQ291bnRyeUNvZGVzOwp9OwovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgovLyBGdW5jdGlvbjogZnJlcU9mSXJpc2hDb3VudGllcwovLwovLyBEZXNjcmlwdGlvbjogRnJlcXVlbmN5IGNhbGN1bGF0b3IgZm9yIElyaXNoIENvdXRpZXMKLy8KLy8KLy8gUGFyYW1ldGVyczogY291bnR5QXJyYXlMaXN0IC0gQW4gYXJyYXkgb2YgY291bnR5IGNoYXJhY2h0ZXIgY29kZXMKLy8gICAgICAgICAgICAgc2l6ZSAgICAgICAgICAgIC0gbGVuZ3RoIG9mIHRoZSBhcnJheQovLwovLyBSZXR1cm5zOiAgICB0aGUgY291bnRyeVRvdGFscyBzdHJ1Y3QsIHBvcHVsYXRlZCB3aXRoIHRoZSBjb3JyZWN0IG51bWJlcgovLwovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKc3RydWN0IGNvdW50eVRvdGFscyBmcmVxT2ZJcmlzaENvdW50aWVzKGNoYXIgY291bnR5QXJyYXlMaXN0W10sIGludCBzaXplKQp7CgogICAgc3RydWN0IGNvdW50eVRvdGFscyBteUNvdW50eVRvdGFscyA9IHswLDAsMCwwLDAsMCwwfTsgIC8vIGhvbGRzIHRoZSBjb3VudHJ5IGNvdW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCBpbml0aWFsaXplcyB0aGVtIHRvIHplcm8KCiAgICAvLyBSZXZpZXcgZWFjaCBvZiB0aGUgY291bnR5IGNvZGVzIGluIHRoZSBhcnJheQogICAgZm9yKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykKICAgIHsKICAgICAgICAvLyBpbmNyZW1lbnRzIHRoZSB0b3RhbCBvZiB0aGUgY3VycmVudCBjb3VudHkgY2hhcmFjdGVyIHZhbHVlCiAgICAgICAgLy8gLi4uIG5vdGUgdGhhdCBjYXNlIGRvZXMgbm90IG1hdHRlciwgYm90aCB1cHBlciBhbmQgbG93ZXIgY291bnQgdGhlIHNhbWUKICAgICAgICAvLyB0b3dhcmRzIHRoZSB0b3RhbHMKICAgICAgICBzd2l0Y2ggKGNvdW50eUFycmF5TGlzdFtpXSkKICAgICAgICB7CiAgICAgICAgCWNhc2UgJ0MnOgogICAgICAgIAljYXNlICdjJzoKICAgICAgICAJCW15Q291bnR5VG90YWxzLnRvdGFsQ29ya0NvZGVzKys7CiAgICAgICAgCQlicmVhazsKICAgICAgICAgICAgY2FzZSAnRCc6CiAgICAgICAgCWNhc2UgJ2QnOgogICAgICAgIAkJbXlDb3VudHlUb3RhbHMudG90YWxEdWJsaW5Db2RlcysrOwogICAgICAgIAkJYnJlYWs7CiAgICAgICAgCWNhc2UgJ0cnOgogICAgICAgIAljYXNlICdnJzoKICAgICAgICAJCW15Q291bnR5VG90YWxzLnRvdGFsR2Fsd2F5Q29kZXMrKzsKICAgICAgICAJCWJyZWFrOwogICAgICAgIAljYXNlICdMJzoKICAgICAgICAJY2FzZSAnbCc6CiAgICAgICAgCQlteUNvdW50eVRvdGFscy50b3RhbExpbWVyaWNrQ29kZXMrKzsKICAgICAgICAJCWJyZWFrOwogICAgICAgICAgICBjYXNlICdUJzoKICAgICAgICAJY2FzZSAndCc6CiAgICAgICAgCQlteUNvdW50eVRvdGFscy50b3RhbFRpcGVyYXJ5Q29kZXMrKzsKICAgICAgICAJCWJyZWFrOwogICAgICAgICAgICBjYXNlICdXJzoKICAgICAgICAJY2FzZSAndyc6CiAgICAgICAgCQlteUNvdW50eVRvdGFscy50b3RhbFdhdGVyZm9yZENvZGVzKys7CiAgICAgICAgCQlicmVhazsKICAgICAgICAJZGVmYXVsdDoKICAgICAgICAJCW15Q291bnR5VG90YWxzLnRvdGFsSW52YWxpZENvdW50cnlDb2RlcysrOwoKICAgICAgICB9IC8vIHN3aXRjaAogICAgfSAvLyBmb3IKCiAgICByZXR1cm4gKG15Q291bnR5VG90YWxzKTsKCn0gLy8gZnJlcU9mSXJpc2hDb3VudGllcwoKCgppbnQgbWluKGludCB2YWx1ZTEsIGludCB2YWx1ZTIsIGludCB2YWx1ZTMsIGludCB2YWx1ZTQpCnsKCgppbnQgbWluNCA9ICgodmFsdWUxIDwgdmFsdWUyKSAmJiAodmFsdWUxIDwgdmFsdWUzKSAmJiAodmFsdWUxIDwgdmFsdWU0KSkgPyB2YWx1ZTEgOiAvLyB2YWx1ZTEgaXMgdGhlIHNtYWxsZXN0CiAgICAgICAgICAgKCh2YWx1ZTIgPCB2YWx1ZTEpICYmICh2YWx1ZTIgPCB2YWx1ZTMpICYmICh2YWx1ZTIgPCB2YWx1ZTQpKSA/IHZhbHVlMiA6IC8vIHZhbHVlMiBpcyBzbWFsbGVzdAogICAgICAgICAgICgodmFsdWUzIDwgdmFsdWUxKSAmJiAodmFsdWUzIDwgdmFsdWUyKSAmJiAodmFsdWUzIDwgdmFsdWU0KSkgPyB2YWx1ZTMgOiAvLyB2YWx1ZTMgaXMgc21hbGxlc3QKICAgICAgICAgICAgdmFsdWU0OyAgLy8gb3RoZXJ3aXNlIHZhbHVlNCBpcyBzbWFsbGVzdAogICAgICAgICAgIHJldHVybiBtaW40Owp9CgoKaW50IG1haW4odm9pZCkgewoJaW50IGFycltdID0gezEsMSwxLDIsMiwyfTsKCWNoYXIgY291bnR5Q29kZXNbXSA9IHsnQycsICdjJywgJ0UnLCAnRycsICdHJywgJ0wnLCAnbCcsICdsJywgJ1QnLCAnVycsICdKJywgJ2QnfTsKCXByaW50ZigiYXJlYSBpczogJWkiLCBmcmVxT2ZJcmlzaENvdW50aWVzKGNvdW50eUNvZGVzLCAxMikudG90YWxXYXRlcmZvcmRDb2Rlcyk7CglyZXR1cm4gMDsKfQo=