diff --git a/du3/program.c b/du3/program.c index 4a67a31..89923ed 100644 --- a/du3/program.c +++ b/du3/program.c @@ -6,13 +6,15 @@ int main() { char* input = (char*) calloc(11, sizeof(char)); char numbers[4]; - int date[3]; + int date[3] = {0, 0, 0}; int counter1 = 0, counter2 = 0; - fgets(input, 11, stdin); + + int truth = 0; +for (int j = 0; fgets(input, 11, stdin) != NULL; j++){ for(int i = 0; i < 11; i++){ if(!isdigit(input[i]) && input[i] != '.' && input[i] != '\0' && input[i] != '\n'){ - break; + goto LABEL; } if(input[i] != '.' && input[i] != '\n' && input[i] != '\0'){ @@ -21,13 +23,13 @@ int main() { else { date[counter2++] = atoi(numbers); if(counter2 == 1 && (date[0] < 1 || date[0] > 31)){ - break; + goto LABEL; } else if(counter2 == 2 && (date[1] < 1 || date[1] > 12)){ - break; + goto LABEL; } else if(counter2 == 2 && date[0] > 29){ - break; + goto LABEL; } else if (counter2 == 3){ date[0] += 7; @@ -52,13 +54,19 @@ int main() { date[1]++; } printf("%d.%d.%d\n\n", date[0], date[1], date[2]); - return 0; + break; } memset(numbers, '\0', 4); counter1 = 0; } } - puts("Neplatny datum"); + memset(input, '\0', 11); + date[0] = 0, date[1] = 0, date[2] = 0; + counter1 = 0, counter2 = 0; + memset(numbers, '\0', 4); +} + LABEL: + if(truth) puts("Neplatny datum"); return 0; }