Advertisement
dmilicev

simple calculator v4.c

Sep 27th, 2019
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. // Simple calculator v3, works with real numbers,
  2. // without how it works prints and comments
  3.  
  4. #include<stdio.h>
  5. #include <stdlib.h>
  6.  
  7. int main()
  8. {
  9.     char c, str[20], snum1[20], snum2[20];
  10.     int i=0, i1=0, i2=0, sign_num1=1, sign_num2=1;
  11.     float num1,num2;
  12.  
  13.     printf("\n CALCULATOR (for real numbers) \n");
  14.     printf("\n Enter first number and operator (+,-,*,/) and second number: \n");
  15.     printf("\n Example: -123+-456 \n\n");
  16.  
  17.     scanf("%s",str);
  18.  
  19.     if(str[0]=='-'){
  20.         sign_num1 = -1;
  21.         i++;
  22.     }
  23.     else if(str[0]=='+'){
  24.         i++;
  25.     }
  26.  
  27.     while(isdigit(str[i]) && str[i]!='\0'){
  28.         snum1[i1]=str[i];
  29.         i++;
  30.         i1++;
  31.     }
  32.     snum1[i1]='\0';
  33.  
  34.     num1=sign_num1*atof(snum1);
  35.  
  36.     c=str[i];
  37.  
  38.     i++;
  39.  
  40.     if(str[i]=='-'){
  41.         sign_num2 = -1;
  42.         i++;
  43.     }
  44.     else if(str[i]=='+'){
  45.         i++;
  46.     }
  47.  
  48.     while(isdigit(str[i]) && str[i]!='\0'){
  49.         snum2[i2]=str[i];
  50.         i++;
  51.         i2++;
  52.     }
  53.  
  54.     snum2[i2]='\0';
  55.  
  56.     num2=sign_num2*atof(snum2);
  57.  
  58.     printf("\n (%f) %c (%f) = ",num1,c,num2);
  59.  
  60.     switch(c)
  61.     {
  62.         case '+':
  63.             printf("(%f) \n",num1+num2);
  64.             break;
  65.  
  66.         case '-':
  67.             printf("(%f) \n",num1-num2);
  68.             break;
  69.  
  70.         case '*':
  71.             printf("(%f) \n",num1*num2);
  72.             break;
  73.  
  74.         case '/':
  75.             printf("(%f) \n",num1/num2);
  76.             break;
  77.         default:
  78.             printf("Error! Invalid Operator.");
  79.     }
  80.  
  81.     printf("\n\n");
  82.     return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement