diff --git a/du4/program.c b/du4/program.c index ca682f1..ba68395 100644 --- a/du4/program.c +++ b/du4/program.c @@ -1,22 +1,24 @@ #include int main(){ - char read[1000000]; - scanf("%[^\n]", read); - float num1, num2, answer; - char action; - sscanf(read, "%f %c %f %*c %f", &num1, &action, &num2, &answer); - if(action != '/' && action != '*' && action != '-' && action != '+'){ - printf("CHYBA\n"); - return 0; + while(1){ + char read[1000000]; + scanf("%[^\n]", read); + float num1, num2, answer; + char action; + sscanf(read, "%f %c %f %*c %f", &num1, &action, &num2, &answer); + if(action != '/' && action != '*' && action != '-' && action != '+'){ + printf("CHYBA\n"); + return 0; + } + float check = (action == '/') ? num1 / num2 : (action == '*') ? num1 * num2 : (action == '+') ? num1 + num2 : num1 - num2; + check *= 100000; + int tmp = check; + check = (float) tmp / 100000; + answer *= 100000; + tmp = answer; + answer = (float) tmp / 100000; + printf("%s\n", (check == answer) ? "OK" : "ZLE"); + //printf("%f\n", check); } - float check = (action == '/') ? num1 / num2 : (action == '*') ? num1 * num2 : (action == '+') ? num1 + num2 : num1 - num2; - check *= 100000; - int tmp = check; - check = (float) tmp / 100000; - answer *= 100000; - tmp = answer; - answer = (float) tmp / 100000; - printf("%s\n", (check == answer) ? "OK" : "ZLE"); - //printf("%f\n", check); }