一个简单计算器的C程序,该程序的功能: 每行读取一个数(数前面可能有正负号) 并对他们求和, 每次输完后把这些数的累加总和 打印出来(各种功能以后还会不断地完善)。
#include <stdio.h> #include <ctype.h> #define MAXLINE 100 double atof(char s[]); int getline_(char s[], int lim); int main(void) { double sum; char line[MAXLINE]; sum = 0; while (getline_(line, MAXLINE) > 0){ printf("\t %g \n", sum += atof(line)); } return 0; } double atof(char s[]) /*把字符串转换为相应的双精度浮点型*/ { double val, power; int i, sign; for(i = 0; isspace(s[i]); i++) /*跳过空格*/ ; sign = (s[i] == '-') ? -1 : 1; /*符号处理*/ if( s[i] == '+' || s[i] == '-' ) i++; for(val = 0.0; isdigit(s[i]); i++) /*小数点右的处理*/ val = 10.0 * val + (s[i] - '0'); if(s[i] == '.') /*小数点的处理*/ i++; for(power = 1.0; isdigit(s[i]); i++){ /*小数点左的处理*/ val = 10.0 * val + (s[i] - '0'); /*字符转 整数*/ power *= 10.0; } return sign * val /power; /*把转换好后的数返回*/ } int getline_(char s[], int lim) { int c , i; i = 0; while(--lim > 0 && (c = getchar()) != EOF && c != '\n') s[i++] = c; if(c == '\n') s[i++] = c; s[i] = '\0'; return i; }一个简单计算器的C程序
内容版权声明:除非注明,否则皆为本站原创文章。