一个简单计算器的C程序
一个简单计算器的C程序
一个简单计算器的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;
- }
评论暂时关闭