fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. double op(double num1, double num2, char c)//operacoes
  5. {
  6. if(c == '/')//divisao
  7. {
  8. if(num2 == 0)
  9. {
  10. printf("operacao nao pode ser realizada");
  11.  
  12. exit(1);
  13. }
  14. else
  15. num1 = (num1)/num2;
  16. }
  17.  
  18. else if(c == '*')//multiplicacao
  19. num1 = (num1)*num2;
  20.  
  21. else if(c == '-')//subtracao
  22. num1= num1 - num2;
  23.  
  24. else if(c == '+')//soma
  25. num1 = num1 + num2;
  26.  
  27. else if(c != '&')//se não for o caractere de finalização
  28. {
  29. printf("operacao nao pode ser realizada");//print o erro
  30.  
  31. exit(1);
  32. }
  33.  
  34. printf("%.3lf\n", num1);//printa o resultado da operação de: num1 e num2
  35.  
  36. return num1;//retorna o resultado da operaçãos
  37. }
  38.  
  39. void captar_e_op(double num1)//captar e operar
  40. {
  41. ///VAR
  42. double num2;//equivalente ao num2
  43.  
  44. char c;
  45.  
  46. ///ENTRADA
  47. scanf("%lf", &num2);
  48.  
  49. scanf(" %c", &c);
  50.  
  51. while(c != '&')//se o char não for '&', continue o loop
  52. {
  53. num1 = op(num1,num2,c);//num1 recebe(=) o resultado da operação de: "antigo num1" e num2
  54.  
  55. ///ENTRADA
  56. scanf("%lf", &num2);
  57.  
  58. scanf(" %c", &c);
  59. }
  60. }
  61.  
  62. int main()
  63. {
  64. ///VARAVEIS
  65. char c;
  66.  
  67. double num1, num2;
  68.  
  69. ///ENTRADA
  70. scanf("%lf", &num1);
  71.  
  72. scanf("%lf", &num2);
  73.  
  74. scanf(" %c", &c);
  75.  
  76.  
  77. num1 = op(num1, num2, c);
  78.  
  79. captar_e_op(num1);
  80.  
  81. return 0;
  82. }
  83.  
Success #stdin #stdout 0s 2252KB
stdin
10
10
*
100
-
2
&
stdout
100.000
0.000