#include int main() { int num1numerator = 0,num2numerator = 0,num1denominator = -1,num2denominator = -1;char op = '@'; // Note : operators allowed are '+' '-' '*' printf("Note : operators allowed are '+' '-' '*' \n and NO negatives in numerator or denominator \n Enter input :"); char ch = getchar(); while( (ch >= '0' && ch <= '9') || ch == '/' || ch == '-' || ch == '+'|| ch == '*' || ch == ' ') { if(ch == ' ') { ch = getchar(); continue; } if(ch == '-' || ch == '+'|| ch == '*') { op = ch; ch = getchar(); continue; } if(op == '@') { if(ch == '/') { num1denominator = 0; } else if(num1denominator == -1) // still processing num 1 numerator { num1numerator = num1numerator * 10 + ch - '0' ; } else { num1denominator = num1denominator * 10 + ch - '0' ; } } else { if(ch == '/') { num2denominator = 0; } else if(num2denominator == -1) // still processing num 1 numerator { num2numerator = num2numerator * 10 + ch - '0' ; } else { num2denominator = num2denominator * 10 + ch - '0' ; } } ch = getchar(); } //div1 = div1 /10;div =div/10; if(num1denominator == -1 ) num1denominator = 1; if(num2denominator == -1 ) num2denominator = 1; float result = 0; /*int resultNumerator,resultDenominator,commonDenominator; printf("The number1 : %d/%d number2 : %d/%d\n",num1numerator,num1denominator,num2numerator,num2denominator); if(op == '*') { resultNumerator = num1numerator * num2numerator; resultDenominator = num1denominator * num2denominator; } if(op == '+' || op == '-') { commonDenominator = num1denominator * num2denominator; if(op == '+') { resultNumerator = num1numerator * num2denominator + num2numerator * num1denominator; } if(op == '-') { resultNumerator = num1numerator * num2denominator - num2numerator * num1denominator; } } */ if(op == '+') result = (num1numerator * 1.0) / (num1denominator*1.0) + (num2numerator*1.0) / (num2denominator*1.0); if(op == '-') result = (num1numerator*1.0) / (num1denominator*1.0) - (num2numerator*1.0) / (num2denominator*1.0); if(op == '*') result = (num1numerator*1.0) / (num1denominator*1.0) * (num2numerator*1.0) / ( num2denominator*1.0); int integerPart = 0; integerPart = result; float floatPart = result - integerPart; int n = integerPart,div =1; printf("result : %f Float part : %f integerPrt : %d|\n Now printing using putchar(): ",result,floatPart,integerPart); while(n > 0) { n = n/10; div = div*10; } div =div/10; n = integerPart; if(result < 0) putchar('-'); while(n>0) { putchar(n/div + '0'); n = n/10; div = div /10; } int count = 0; if(floatPart > 0) { putchar('.'); while(floatPart > 0 || count < 3) { int n = floatPart * 10; floatPart = floatPart*10 - n; putchar(n + '0'); count++; if(count >=3) break; } } printf("\n"); return 0; }