This commit is contained in:
Peter Sabol 2022-03-31 10:24:10 +02:00
parent 73a040fa6b
commit 3db3c1b900
2 changed files with 48 additions and 76 deletions

Binary file not shown.

View File

@ -5,12 +5,14 @@
#include <ctype.h> #include <ctype.h>
int main() {
int i,j; int main(){
int i,j;
double number1, number2, summary,msum; double number1, number2, summary,msum;
char operand, equ; char operand, equ;
float rsum=0; float rsum=0;
/* char input[1000]; /* char input[1000];
char num_str[30] = {0}; char num_str[30] = {0};
float numbers[3]; float numbers[3];
fgets(input, 999, stdin); fgets(input, 999, stdin);
@ -37,7 +39,7 @@ int main() {
*/ */
char* input = calloc(1000, 1); char* input = calloc(1000, 1);
while (1) { while (1) {
input = fgets(input, 1000, stdin); input = fgets(input, 1000, stdin);
if (input == NULL) break; if (input == NULL) break;
@ -45,9 +47,9 @@ int main() {
if (input[0] == '\n' || input[0] == EOF || strlen(input) <= 0) if (input[0] == '\n' || input[0] == EOF || strlen(input) <= 0)
break; break;
float values[3] = {0}; float values[3] = {0};
char operation = 0; char operation = 0;
int k = 0; int k = 0;
int num = strlen(input); int num = strlen(input);
for (int i = 0; i < num; i++) { for (int i = 0; i < num; i++) {
@ -58,7 +60,7 @@ int main() {
if (isalpha(input[i])) if (isalpha(input[i]))
break; break;
if (i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || (input[i] == '-' && isdigit(input[i + 1])))) { if (i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || (input[i] == '-' && isdigit(input[i + 1])))) {
char temp[100] = {0}; char temp[100] = {0};
for (int j = 0; i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || input[i] == '-'); j++) { for (int j = 0; i < strlen(input) && (isdigit(input[i]) || input[i] == '.' || input[i] == '-'); j++) {
@ -73,54 +75,26 @@ int main() {
} }
} }
if (k != 3) { if (k != 3) {
printf("CHYBA\n"); printf("CHYBA\n");
continue; continue;
} }
if (operation == 0 && values[1] < 0) { if (operation == 0 && values[1] < 0) {
operation = '-'; operation = '-';
values[1] = abs(values[1]); values[1] = abs(values[1]);
} }
float result = 0; float result = 0;
switch (operation) {
case '+': {
result = values[0] + values[1]; ////////////////////////////////////////////////
break;
} if((operand == '/') && (number2 == 0)){
case '-': {
result = values[0] - values[1];
break;
}
case '/': {
result = values[0] / values[1];
break;
}
case '*': {
result = values[0] * values[1];
break;
}
default: {
printf("CHYBA\n");
continue;
}
}
char result_string[50];
sprintf(result_string, "%.2f", result);
result = atof(result_string);
if (result == values[2])
printf("OK\n");
else
printf("ZLE\n");
}
if((operand == '/') && (number2 == 0)){
printf("Nulou sa nedá deli<6C>"); printf("Nulou sa nedá deli<6C>");
} }
if(operand !='+' && operand !='-' && operand !='*' && operand !='/'){ if(operand !='+' && operand !='-' && operand !='*' && operand !='/'){
@ -128,22 +102,35 @@ int main() {
printf("\n"); printf("\n");
} }
//msum=values[2]; msum=values[2];
if(operand=='+'){ if(operation=='+'){
// rsum=values[0]+values[1]; rsum=values[0]+values[1];
char rmsum[50]; char rmsum[50];
sprintf(rmsum, "%.2f", msum); sprintf(rmsum, "%.2f", msum);
msum = atof(rmsum); msum = atof(rmsum);
if(msum==rsum){ if(msum==rsum){
//printf("OK\n"); printf("OK\n");
} }
else{ else{
//printf("ZLE\n"); printf("ZLE\n");
} }
//printf("%lf\n",rsum); printf("%lf\n",rsum);
} }
else if(operand=='-'){ else if(operation=='-'){
// rsum=values[0]-values[1]; 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]; char rmsum[50];
sprintf(rmsum, "%.2f", msum); sprintf(rmsum, "%.2f", msum);
msum = atof(rmsum); msum = atof(rmsum);
@ -151,37 +138,22 @@ int main() {
//printf("OK\n"); //printf("OK\n");
} }
else{ else{
//printf("ZLE\n"); printf("ZLE\n");
} }
//printf("%lf\n",rsum); printf("%lf\n",rsum);
} }
else if(operand=='*'){ else if(operation=='/'){
// rsum=values[0]*values[1]; rsum=values[0]/values[1];
char rmsum[50]; char rmsum[50];
sprintf(rmsum, "%.2f", msum); sprintf(rmsum, "%.2f", msum);
msum = atof(rmsum); msum = atof(rmsum);
if(msum==rsum){ if(msum==rsum){
//printf("OK\n"); printf("OK\n");
} }
else{ else{
//printf("ZLE\n"); printf("ZLE\n");
} }
//printf("%lf\n",rsum); printf("%lf\n",rsum);
} }
else if(operand=='/'){
// 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);
} }
free(input); }
return 0;
}