Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Simple calculator v3, works with real numbers,
- // without how it works prints and comments
- #include<stdio.h>
- #include <stdlib.h>
- int main()
- {
- char c, str[20], snum1[20], snum2[20];
- int i=0, i1=0, i2=0, sign_num1=1, sign_num2=1;
- float num1,num2;
- printf("\n CALCULATOR (for real numbers) \n");
- printf("\n Enter first number and operator (+,-,*,/) and second number: \n");
- printf("\n Example: -123+-456 \n\n");
- scanf("%s",str);
- if(str[0]=='-'){
- sign_num1 = -1;
- i++;
- }
- else if(str[0]=='+'){
- i++;
- }
- while(isdigit(str[i]) && str[i]!='\0'){
- snum1[i1]=str[i];
- i++;
- i1++;
- }
- snum1[i1]='\0';
- num1=sign_num1*atof(snum1);
- c=str[i];
- i++;
- if(str[i]=='-'){
- sign_num2 = -1;
- i++;
- }
- else if(str[i]=='+'){
- i++;
- }
- while(isdigit(str[i]) && str[i]!='\0'){
- snum2[i2]=str[i];
- i++;
- i2++;
- }
- snum2[i2]='\0';
- num2=sign_num2*atof(snum2);
- printf("\n (%f) %c (%f) = ",num1,c,num2);
- switch(c)
- {
- case '+':
- printf("(%f) \n",num1+num2);
- break;
- case '-':
- printf("(%f) \n",num1-num2);
- break;
- case '*':
- printf("(%f) \n",num1*num2);
- break;
- case '/':
- printf("(%f) \n",num1/num2);
- break;
- default:
- printf("Error! Invalid Operator.");
- }
- printf("\n\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment