commit f3ab4731474ff00c5b7ea00a4896b3f1d29cf121 from: jrmu date: Mon Feb 9 02:12:43 2026 UTC Naive solution for 4-2 commit - c0524b21c58b6c724a07074d102b99d45e14b194 commit + f3ab4731474ff00c5b7ea00a4896b3f1d29cf121 blob - /dev/null blob + 5c2d96de2bbb5a0ecd26bea1cc532832dec28660 (mode 644) --- /dev/null +++ 4-2-input @@ -0,0 +1,26 @@ +-12.34 +234.56 +-123456.7890 +-1.234567890 +123.45e-6 +0.0000000000000000012345 +.0000000000000000012345 +1.234567e89 +.1234567e90 +12345e-6 +12345678e-9 +1234567e89 +1.17549e-38 +3.40282e+38 +117.549e-40 +0.0340282e+40 +0.0117549e-36 +340.282e+36 +.117549e-37 +.340282e+39 +2.22507e-308 +1.79769e+308 +2.22507e-308 +1.79769e+308 +3.3621e-4932 +1.18973e+4932 blob - /dev/null blob + 13b05df8f499fbefdad46e9ce7362989e298959a (mode 644) --- /dev/null +++ 4-2-output @@ -0,0 +1,26 @@ +-12.34 +234.56 +-123457 +-1.23457 +0.00012345 +1.2345e-18 +1.2345e-18 +1.23457e+89 +1.23457e+89 +0.012345 +0.0123457 +1.23457e+95 +1.17549e-38 +3.40282e+38 +1.17549e-38 +3.40282e+38 +1.17549e-38 +3.40282e+38 +1.17549e-38 +3.40282e+38 +2.22507e-308 +inf +2.22507e-308 +inf +0 +inf blob - /dev/null blob + 02e63350f68ce84fa3b4efbeea9cf6e20b7a1a17 (mode 644) --- /dev/null +++ 4-2.c @@ -0,0 +1,65 @@ +/* 4-2 Extend atof to handle scientific notation of the form 123.45e-6 where a + * floating-point number may be followed by e or E and an optionally signed + * exponent. */ + +#include +#include +#include + +#define MAXLINE 1000 /* maximum input line size */ + +int getlin(char line[], int maxline); +double atof(char s[]); +double pow(double x, double y); + +int main() { + char line[MAXLINE]; + while(getlin(line, MAXLINE) > 0) { + double d = atof(line); + printf("%g\n", d); + } + return 0; +} + +/* getlin: read a line into s, return length; modified to trim ending newline */ +int getlin(char s[], int lim) { + int c, i; + + for (i=0; i