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

This commit is contained in:
Pavlo Tverdyi 2020-03-31 18:40:15 +00:00
parent 6538107f50
commit cad86a89ca

View File

@ -3,36 +3,38 @@
#include <string.h>
#include <ctype.h>
int call(float A, float B, float C, char AC){
if(AC=='/'&&B==0||AC==('+'||'-'||'*'||'-')){
int call(long double A, long double B, long double C, char AC){
if(AC=='/'&&B==0 || AC==('+'||'-'||'*'||'-')){
return printf("CHYBA\n");
}
else if(AC=='+'){
if(A+B==C)return printf("OK\n");
return printf("ZLE\n");
}
else if(AC=='-'){
if(AC=='-'){
if(A-B==C)return printf("OK\n");
return printf("ZLE\n");
}
else if(AC=='*'){
if(AC=='*'){
if(A*B==C)return printf("OK\n");
return printf("ZLE\n");
}
if(AC=='/'){
float Cc=A/B;
long double Cc=A/B;
Cc=(int)(Cc*100000);
Cc=(float)Cc/100000;
if(Cc==C)return printf("OK\n");
if(Cc==C || A/B==C)return printf("OK\n");
// printf("%Lf",Cc);
return printf("ZLE\n");
}
return printf("CHYBA");
return printf("CHYBA\n");
}
int main()
{
char *str;
str=(char*)malloc(100);
float a,b,c;
long double a,b,c;
char ac,el;
int ind=0;
for(int i=0;el!='\n';i++){
@ -43,7 +45,11 @@ for(int i=0;el!='\n';i++){
str[ind]=el;
ind++;
}
sscanf(str,"%f%c%f=%f ",&a,&ac,&b,&c);
//3␣/␣45␣=␣0.06666↵
//scanf("%s",str);
sscanf(str,"%Lf%c%Lf=%Lf ",&a,&ac,&b,&c);
//printf("\n%f %c %f =%f ",a,ac,b,c);
call(a,b,c,ac);
return 0;
}