Изменить 'du3/program.c'

This commit is contained in:
Oleksandr Hryshchenko 2021-03-18 18:00:03 +00:00
parent a1b379b220
commit cd988d1af1

View File

@ -1,3 +1,4 @@
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#include <stdlib.h> #include <stdlib.h>
@ -16,15 +17,21 @@ int main() {
for(int i = 0; i < 11; i++){ for(int i = 0; i < 11; i++){
if(!isdigit(input[i]) && input[i] != '.' && input[i] != '\0' && input[i] != '\n'){ if(!isdigit(input[i]) && input[i] != '.' && input[i] != '\0' && input[i] != '\n'){
goto LABEL; goto LABEL;
truth = 1;
} }
if(input[i] != '.' && input[i] != '\n' && input[i] != '\0'){ if(input[i] != '.' && input[i] != '\n' && input[i] != '\0'){
numbers[counter1++] = input[i]; numbers[counter1++] = input[i];
} }
else { else {
date[counter2++] = (int) strtol(numbers, &ptr, 10); date[counter2++] = (int) strtol(numbers, &ptr, 10);
if((counter2 == 1 && (date[0] < 1 || date[0] > 31)) || (counter2 == 2 && (date[1] < 1 || date[1] > 12)) || (counter2 == 2 && date[0] > 29)){ if(counter2 == 1 && (date[0] < 1 || date[0] > 31)){
//goto LABEL; goto LABEL;
}
else if(counter2 == 2 && (date[1] < 1 || date[1] > 12)){
goto LABEL;
}
else if(counter2 == 2 && date[0] > 29){
goto LABEL;
} }
else if (counter2 == 3){ else if (counter2 == 3){
date[0] += 7; date[0] += 7;
@ -48,12 +55,11 @@ int main() {
date[0] -= 28; date[0] -= 28;
date[1]++; date[1]++;
} }
//date[2] /= 100;
printf("%d.%d.%d\n\n", date[0], date[1], date[2]); printf("%d.%d.%d\n\n", date[0], date[1], date[2]);
break; break;
} }
counter1 = 0;
memset(numbers, '\0', 4); memset(numbers, '\0', 4);
counter1 = 0;
} }
} }
memset(input, '\0', 11); memset(input, '\0', 11);
@ -61,8 +67,8 @@ int main() {
counter1 = 0, counter2 = 0; counter1 = 0, counter2 = 0;
memset(numbers, '\0', 4); memset(numbers, '\0', 4);
} }
LABEL: LABEL:
if(truth) puts("Neplatny datum"); if(truth) puts("Neplatny datum");
return 0; return 0;
} }