fork download
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. char *mygcvt(double val)
  6. {
  7. char buf1[256];
  8. static char buf2[256];
  9. int prec = 1;
  10. size_t len, maxlen = 0;
  11. for (;;)
  12. {
  13. len = strlen(gcvt(val, prec, buf1));
  14. if (len <= maxlen)
  15. break;
  16. maxlen = len;
  17. strcpy(buf2, buf1);
  18. prec++;
  19. }
  20. return buf2;
  21. }
  22.  
  23. int main(void)
  24. {
  25. printf("%s\n", mygcvt(0.0));
  26. printf("%s\n", mygcvt(1.0));
  27. printf("%s\n", mygcvt(0.1));
  28. printf("%s\n", mygcvt(0.123));
  29. printf("%s\n", mygcvt(0.3333333333333333333333333333333333333333333));
  30. return 0;
  31. }
  32.  
Success #stdin #stdout 0s 2248KB
stdin
Standard input is empty
stdout
0
1
0.1
0.123
0.33333333333333331