编程日志2(fsum.c)

fsum.c

代码

#include 
#include 
#include 

#define BUFSIZE 256

int main(int argc, char *argv[]) {
	char prefix[BUFSIZE];
	char next[BUFSIZE];
	int i;
    float sum = 0.0;
    for (i = 1; i < argc; i++) {
		float x = atof(argv[i]);
		sum += x;
		if (i == 1) 
	  		sprintf(prefix, "%.4g", x);
	  	else {
	  		sprintf(next, " + %.4g", x);
	  		strcat(prefix, next);
	  		printf("%s = %.4g\n", prefix, sum);
		}
    }
    return 0;
}

调试

测试输入1:	1e20 -1e20 3.14
测试输入2:	-1e20 3.14
测试输入3:	-1e20 3.14 1e20

调试结果如下:
编程日志2(fsum.c)_第1张图片

代码解释

3.14在加上1e20时会舍去,太小了

你可能感兴趣的:(深入理解计算机系统)