#include <stdio.h>
int main(void) {
// **************************************************
// Function: irishLicensePlateValidator
//
// Description: Validates an Irish License Plate
// for the years between 2013 and 2024
//
// Parameters: year - two digit year (13 - 24)
// halfYear - when car sold (1st half / 2nd half of year)
// county - must be from C/c, D/d, G/g, L/l, T/t, or W/w
// SSSSSS - a 1 to 6 digit sequence number
//
// Returns: 1 or 0 for true or false (whether it is valid)
//
// ***************************************************
int irishLicensePlateValidator(int year, int halfYear, char county, int SSSSSS)
{
// you can get most all values you need from the parameter values passed in
int valid = 1; // 0 or 1 variable returned at the end
// add some conditional statement logic to check each parameter (switches, if/else, ...)
// checks whether year is outside the range of 2013-2024
if((year < 13) || (year > 24))
{
valid = 0;
}
// checks whether halfYear is incorrect (must be 1 or 2)
if((halfYear != 1) && (halfYear != 2))
{
valid = 0;
}
// checks if the county is valid
switch(county)
{
case 'c': // Cork
break;
case 'C':
break;
case 'd': // Dublin
break;
case 'D':
break;
case 'g': // Galway
break;
case 'G':
break;
case 'l': // Limerick
break;
case 'L':
break;
case 't': // Tiperary
break;
case 'T':
break;
case 'w': // Waterford
break;
case 'W':
break;
default: // if it is none of the cases, invalid
valid = 0;
}
// checks if the sequence number is between 1 to 6 digits
if ((SSSSSS < 1) || (SSSSSS > 999999))
{
valid = 0;
}
return(valid);
}
printf("Supposed to be true: %d", irishLicensePlateValidator
(13, 1, 'D', 21)); printf("\nSupposed to be false: %d", irishLicensePlateValidator
(12, 1, 'D', 21)); printf("\nSupposed to be false: %d", irishLicensePlateValidator
(13, 3, 'D', 21)); printf("\nSupposed to be false: %d", irishLicensePlateValidator
(13, 1, 'K', 21)); printf("\nSupposed to be false: %d", irishLicensePlateValidator
(13, 1, 'D', 1245891));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7Ci8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgkvLyBGdW5jdGlvbjogaXJpc2hMaWNlbnNlUGxhdGVWYWxpZGF0b3IKCS8vCgkvLyBEZXNjcmlwdGlvbjogVmFsaWRhdGVzIGFuIElyaXNoIExpY2Vuc2UgUGxhdGUKCS8vIGZvciB0aGUgeWVhcnMgYmV0d2VlbiAyMDEzIGFuZCAyMDI0CgkvLwoJLy8gUGFyYW1ldGVyczogeWVhciAtIHR3byBkaWdpdCB5ZWFyICgxMyAtIDI0KQoJLy8JICAgICAgIGhhbGZZZWFyIC0gd2hlbiBjYXIgc29sZCAoMXN0IGhhbGYgLyAybmQgaGFsZiBvZiB5ZWFyKQoJLy8JCSAgIGNvdW50eSAtIG11c3QgYmUgZnJvbSBDL2MsIEQvZCwgRy9nLCBML2wsIFQvdCwgb3IgVy93CgkvLwkJICAgU1NTU1NTIC0gYSAxIHRvIDYgZGlnaXQgc2VxdWVuY2UgbnVtYmVyCgkvLwoJLy8gUmV0dXJuczogICAgMSBvciAwIGZvciB0cnVlIG9yIGZhbHNlICh3aGV0aGVyIGl0IGlzIHZhbGlkKQoJLy8KCS8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgkKCWludCBpcmlzaExpY2Vuc2VQbGF0ZVZhbGlkYXRvcihpbnQgeWVhciwgaW50IGhhbGZZZWFyLCBjaGFyIGNvdW50eSwgaW50IFNTU1NTUykKCXsKCQoJICAgIC8vIHlvdSBjYW4gZ2V0IG1vc3QgYWxsIHZhbHVlcyB5b3UgbmVlZCBmcm9tIHRoZSBwYXJhbWV0ZXIgdmFsdWVzIHBhc3NlZCBpbgoJCgkJaW50IHZhbGlkID0gMTsgLy8gMCBvciAxIHZhcmlhYmxlIHJldHVybmVkIGF0IHRoZSBlbmQKCSAgICAvLyBhZGQgc29tZSBjb25kaXRpb25hbCBzdGF0ZW1lbnQgbG9naWMgdG8gY2hlY2sgZWFjaCBwYXJhbWV0ZXIgKHN3aXRjaGVzLCBpZi9lbHNlLCAuLi4pCgkKCQkvLyBjaGVja3Mgd2hldGhlciB5ZWFyIGlzIG91dHNpZGUgdGhlIHJhbmdlIG9mIDIwMTMtMjAyNAoJCWlmKCh5ZWFyIDwgMTMpIHx8ICh5ZWFyID4gMjQpKQoJCXsKCQkJdmFsaWQgPSAwOyAKCQl9CgkJCgkJLy8gY2hlY2tzIHdoZXRoZXIgaGFsZlllYXIgaXMgaW5jb3JyZWN0IChtdXN0IGJlIDEgb3IgMikKCQlpZigoaGFsZlllYXIgIT0gMSkgJiYgKGhhbGZZZWFyICE9IDIpKQoJCXsJCgkJCXZhbGlkID0gMDsgCgkJfQoJCQoJCS8vIGNoZWNrcyBpZiB0aGUgY291bnR5IGlzIHZhbGlkCgkJc3dpdGNoKGNvdW50eSkKCQl7CgkJCWNhc2UgJ2MnOiAvLyBDb3JrCgkJCQlicmVhazsgCgkJCWNhc2UgJ0MnOiAKCQkJCWJyZWFrOyAKCQkJY2FzZSAnZCc6IC8vIER1YmxpbgoJCQkJYnJlYWs7IAoJCQljYXNlICdEJzogCgkJCQlicmVhazsgCgkJCWNhc2UgJ2cnOiAvLyBHYWx3YXkKCQkJCWJyZWFrOyAKCQkJY2FzZSAnRyc6IAoJCQkJYnJlYWs7IAoJCQljYXNlICdsJzogLy8gTGltZXJpY2sKCQkJCWJyZWFrOyAKCQkJY2FzZSAnTCc6IAoJCQkJYnJlYWs7IAoJCQljYXNlICd0JzogLy8gVGlwZXJhcnkKCQkJCWJyZWFrOyAKCQkJY2FzZSAnVCc6IAoJCQkJYnJlYWs7IAoJCQljYXNlICd3JzogLy8gV2F0ZXJmb3JkCgkJCQlicmVhazsgCgkJCWNhc2UgJ1cnOiAKCQkJCWJyZWFrOyAKCQkJZGVmYXVsdDogLy8gaWYgaXQgaXMgbm9uZSBvZiB0aGUgY2FzZXMsIGludmFsaWQKCQkJCXZhbGlkID0gMDsgCgkJfQoJCQoJCS8vIGNoZWNrcyBpZiB0aGUgc2VxdWVuY2UgbnVtYmVyIGlzIGJldHdlZW4gMSB0byA2IGRpZ2l0cwoJCWlmICgoU1NTU1NTIDwgMSkgfHwgKFNTU1NTUyA+IDk5OTk5OSkpCgkJewoJCQl2YWxpZCA9IDA7IAoJCX0KCQkKCQlyZXR1cm4odmFsaWQpOyAKCX0KCQoJcHJpbnRmKCJTdXBwb3NlZCB0byBiZSB0cnVlOiAlZCIsIGlyaXNoTGljZW5zZVBsYXRlVmFsaWRhdG9yKDEzLCAxLCAnRCcsIDIxKSk7CglwcmludGYoIlxuU3VwcG9zZWQgdG8gYmUgZmFsc2U6ICVkIiwgaXJpc2hMaWNlbnNlUGxhdGVWYWxpZGF0b3IoMTIsIDEsICdEJywgMjEpKTsKCXByaW50ZigiXG5TdXBwb3NlZCB0byBiZSBmYWxzZTogJWQiLCBpcmlzaExpY2Vuc2VQbGF0ZVZhbGlkYXRvcigxMywgMywgJ0QnLCAyMSkpOwoJcHJpbnRmKCJcblN1cHBvc2VkIHRvIGJlIGZhbHNlOiAlZCIsIGlyaXNoTGljZW5zZVBsYXRlVmFsaWRhdG9yKDEzLCAxLCAnSycsIDIxKSk7IAoJcHJpbnRmKCJcblN1cHBvc2VkIHRvIGJlIGZhbHNlOiAlZCIsIGlyaXNoTGljZW5zZVBsYXRlVmFsaWRhdG9yKDEzLCAxLCAnRCcsIDEyNDU4OTEpKTsKCglyZXR1cm4gMDsKfQo=