Advertisement
Guest User

Untitled

a guest
May 29th, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int size=1;
  5. double *stack;
  6.  
  7. void push (double a) {
  8. stack = (double*) realloc (stack, size*sizeof(double));
  9. }
  10.  
  11. double convDouble(char *a) {
  12. int j=0, predPiko=0, stMest=0;
  13. double valDouble, currDouble;
  14. while(a[j] != '\0') {
  15. if (a[j] == '.') {
  16. predPiko = 1;
  17. stMest=10;
  18. } else {
  19. if (predPiko==0) {
  20. currDouble = a[j] - '0';
  21. if (stMest == 0 && currDouble == 0) {
  22. predPiko=1;
  23. } else if (stMest == 0) {
  24. valDouble += currDouble;
  25. stMest++;
  26. } else {
  27. valDouble *= 10;
  28. valDouble += currDouble;
  29. stMest++;
  30. }
  31. } else {
  32. currDouble = a[j] - '0';
  33. valDouble +=(double)(currDouble/stMest);
  34. stMest *= 10;
  35. //printf("%f ", currDouble);
  36. }
  37. }
  38. j++;
  39. }
  40. return valDouble;
  41. }
  42.  
  43. int main() {
  44. stack = (double*) malloc (size*sizeof(double));
  45. char *ukaz = (char*) malloc (20*sizeof(char));
  46. int i;
  47. double num;
  48.  
  49. for (i=0; i<10; i++) {
  50. scanf("%s", ukaz);
  51. num = convDouble(ukaz);
  52. printf("%.10f\n",num);
  53. }
  54.  
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement