请输入您要查询的百科知识:

 

词条 计算器C程原代码
释义

§ 回车得

1

#include<stdio.h>

#include<ctype.h>

#include<stdlib.h>

#include <conio.h>

char token【61】;

int n=0;

void error(void)

{

printf("ERROR!\");

exit(1);

}

void match(char expected)

{

if(token【n】==expected)

token【++n】=getchar();

else error();

}

double term(void);

double factor(void);

double exp(void)

{

double temp=term();

while((token【n】=='+')||(token【n】=='-'))

switch(token【n】)

{

case'+':match('+');

temp+=term();

break;

case'-':match('-');

temp-=term();

break;

}

return temp;

}

double term(void)

{

double div;

double temp=factor();

while((token【n】=='*')||(token【n】=='/'))

switch(token【n】)

{

case'*':match('*');

temp*=factor();

break;

case'/':match('/');

div=factor();

if(div==0)

{

printf("The divisor is zero!\");

exit(1);

}

temp/=div;

break;

}

return temp;

}

double factor(void)

{

double temp;

char number【61】;

int i=0;

if(token【n】=='(')

{

match('(');

temp=exp();

match(')');

}

else if(isdigit(token【n】)||token【n】=='.')

{

while(isdigit(token【n】)||token【n】=='.')

{

number【i++】=token【n++】;

token【n】=getchar();

}

number='\\0';

temp=atof(number);

}

else error();

return temp;

}

main()

{

double result;

FILE *data=fopen("61590_4.dat","at");

if(data==NULL)

data=fopen("61590_4.dat","wt");

if(data==NULL)

return 0;

token【n】=getchar();

result=exp();

if(token【n】=='\')

{

token【n】='\\0';

printf("%s=%g\",token,result);

fprintf(data,"%s=%g\",token,result);

}

else error();

fclose(data);

getch();

}

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/19 6:00:01