fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6. char arr[100], sign[10] = {0};
  7. char* p;
  8. double num[10] = {0};
  9. int i=0,j=0,k=0,cnt=0;
  10. double total=0,sum=0;
  11. gets(arr);
  12. for (p = arr; p <= arr + strlen(arr); ++p)
  13. {
  14. if (*p == '*' || *p == '/' || *p == '+' || *p == '-')
  15. {
  16.  
  17. num[i] = sum;
  18. sign[i] = *p;
  19. sum = 0;
  20. ++i;
  21. }
  22.  
  23. if (*p >= '0' && *p <= '9')
  24. {
  25. sum *= 10;
  26. sum += *p - '0';
  27. if (p == arr + strlen(arr) - 1)
  28. {
  29. num[i] = sum;
  30. }
  31. }
  32.  
  33.  
  34. }
  35. while(j<i)
  36. {
  37. if (sign[j] == '*' || sign[j] == '/')
  38. {
  39. if (sign[j] == '*')
  40. total = num[j] * num[j + 1];
  41. if (sign[j] == '/')
  42. total = num[j] / num[j + 1];
  43. num[j] = total;
  44. for (k = j + 1; k <= i; ++k)
  45. num[k] = num[k + 1];
  46. for (k = j; k < i; ++k)
  47. sign[k] = sign[k + 1];
  48. ++cnt;
  49. j = 0;
  50. }
  51. else
  52. ++j;
  53. }
  54. j = 0;
  55. while(i-cnt!=0)
  56. {
  57. if (sign[j] == '+')
  58. total = num[j] + num[j + 1];
  59. if (sign[j] == '-')
  60. total = num[j] - num[j + 1];
  61. num[j] = total;
  62. for (k = j + 1; k <= i - cnt; ++k)
  63. num[k] = num[k + 1];
  64. for (k = j; k < i - cnt; ++k)
  65. sign[k] = sign[k + 1];
  66. ++cnt;
  67. }
  68. printf("%lf", num[0]);
  69. return 0;
  70. }
  71.  
Success #stdin #stdout 0s 4520KB
stdin
Standard input is empty
stdout
0.000000