Advertisement
Guest User

Untitled

a guest
Nov 30th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.01 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "ctype.h"
  3.  
  4. #define MAXLINE 100
  5.  
  6. double myatof(char s[]);
  7. int mygetline(char line[], int limite);
  8.  
  9. int main(void)
  10. {
  11.   char s[MAXLINE];
  12.   double sum = 0;
  13.   scanf("%lf", &sum);
  14.   while (mygetline(s, MAXLINE) >= 0)
  15.     printf("\t%g\n", sum += myatof(s));
  16.   return 0;
  17. }
  18.  
  19.  
  20. int mygetline(char s[], int limite)
  21. /* stocke la ligne dans s[] et renvoit la taille de la ligne */
  22. {
  23.   int c;
  24.   int i = 0;
  25.  
  26.   while (--limite > 0 && (c = getchar()) != EOF && c != '\n')
  27.     s[i++] = c;
  28.   if (c == '\n')
  29.     s[i++] = c;
  30.   s[i] = '\0';
  31.   return i;
  32. }
  33.  
  34. double myatof(char s[])
  35. {
  36.   double val, power;
  37.   int i, sign;
  38.  
  39.   for (i=0; isspace(s[i]); i++)
  40.     ;
  41.   sign = (s[i] == '-') ? -1 : 1;
  42.   if (s[i] == '-' || s[i] == '+')
  43.     i++;
  44.   for (val = 0; isdigit(s[i]); i++)
  45.     val = 10 * val + (s[i] - '0');
  46.   if (s[i] == '.' || s[i] == ',')
  47.     i++;
  48.   for (power = 1; isdigit(s[i]); i++){
  49.     val = 10 * val + (s[i] - '0');
  50.     power *= 10;
  51.       }
  52.   return sign * val / power;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement