#include #include #include #include #include int main(){ int i,j; double number1, number2, summary,msum; char operand, equ; float rsum=0; /* char input[1000]; char num_str[30] = {0}; float numbers[3]; fgets(input, 999, stdin); for (int i = 0, j =0; i < strlen(input); i++) { char c = input[i]; if (c==' ') continue; if (c=='+') operand='+'; if (c=='-') operand='-'; if (c=='*') operand='*'; if (c=='/') operand='/'; if (c=='\n') break; if (isdigit(c)) {num_str[j++] = c - '0';} else if (j > 0) { j = 0; numbers[...] = atof(num_str); } } } // scanf("%lf", &number1); //scanf("%lf", &number2); //scanf("%lf",&msum); */ char* input = calloc(1000, 1); while (1) { input = fgets(input, 1000, stdin); if (input == NULL) break; fflush(stdin); if (input[0] == '\n' || input[0] == EOF || strlen(input) <= 0) break; float values[3] = {0}; char operation = 0; int k = 0; int num = strlen(input); for (int i = 0; i < num; i++) { if (input[i] == ' ') continue; if (isalpha(input[i])) break; if (i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || (input[i] == '-' && isdigit(input[i + 1])))) { char temp[100] = {0}; for (int j = 0; i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || input[i] == '-'); j++) { temp[j] = input[i++]; } i--; values[k++] = (float)atof(temp); } else if (isdigit(input[i]) == 0 && input[i] != ' ' && input[i] != '\n' && input[i] != '=') { operation = input[i]; } } if (k != 3) { printf("CHYBA\n"); continue; } if (operation == 0 && values[1] < 0) { operation = '-'; values[1] = abs(values[1]); } float result = 0; //////////////////////////////////////////////// if((operand == '/') && (number2 == 0)){ printf("Nulou sa nedá deliť"); } if(operand !='+' && operand !='-' && operand !='*' && operand !='/'){ return 1; printf("\n"); } msum=values[2]; if(operation=='+'){ rsum=values[0]+values[1]; char rmsum[50]; sprintf(rmsum, "%.2f", msum); msum = atof(rmsum); if(msum==rsum){ printf("OK\n"); } else{ printf("ZLE\n"); } printf("%lf\n",rsum); } else if(operation=='-'){ rsum=values[0]-values[1]; char rmsum[50]; sprintf(rmsum, "%.2f", msum); msum = atof(rmsum); if(msum==rsum){ printf("OK\n"); } else{ printf("ZLE\n"); } printf("%lf\n",rsum); } else if(operation=='*'){ rsum=values[0]*values[1]; char rmsum[50]; sprintf(rmsum, "%.2f", msum); msum = atof(rmsum); if(msum==rsum){ //printf("OK\n"); } else{ printf("ZLE\n"); } printf("%lf\n",rsum); } else if(operation=='/'){ rsum=values[0]/values[1]; char rmsum[50]; sprintf(rmsum, "%.2f", msum); msum = atof(rmsum); if(msum==rsum){ printf("OK\n"); } else{ printf("ZLE\n"); } printf("%lf\n",rsum); } } }