四则运算计算器
/* 这是我做的计算器
涵数,computer()
作者QQ:328266362
*/
#include
#include
#include
double add(double cd[],char cf[],int cn);
main()
{
char cmp[255];
double total;
char x;
int n=0;
printf("input to compuer:");
gets(cmp);
if (computer(cmp,&total))
printf("the resust=%f",total);
else
printf("input error!");
getch();
}
computer(char cmp[],double *total)
{
charcf[100];
double cd[100];
int cn,i;
cn=readcmp(cmp,cd,cf);
if (cn>0)
{
*total=add(cd,cf,cn);
return 1;
}
else
return 0;
}
//----内部过程------------------------
readcmp(char cmp[],double cd[],char cf[])
{
/*读取字符=>X
是加减乘除吗?
是的
将数字字符转成数字->存入cd[]
数组序列号+1
数字串清空
将符号存入cf[]
否是0,1,2,3,4,5,6,7,8,9,吗?
是
空格标志是2.
是 非法返回
否 加入数字串
否是空格吗?
是 .数字串是空的吗?
是 空格标志为2
否 空格标志为1
否
非法字符,返回.
*/
char strdigit[100],x;
int digitn=0,i,cn=0,spaceflag=0,diaoflag=0;
cf[0]='+';
for (i=0;
cmp[i]!='/0';
i++)
{
x=cmp[i];
if (x=='+'||x=='-'||x=='*'||x=='/')
{
if (digitn==0)
{
if (x=='-' && cn==0)
{
strdigit[digitn]=x;
strdigit[digitn+1]='/0';
digitn++;
}
else
return 0;
}
else
{
cd[cn]=atof(strdigit);
cn++;
digitn=0;
spaceflag=0;
diaoflag=0;
cf[cn]=x;
}
}
else if (x>='0' && x<='9')
{
if (spaceflag==2)
{
return 0;
}
else
{
strdigit[digitn]=x;
strdigit[digitn+1]='/0';
digitn++;
}
}
else if (x=='.')
{
if (diaoflag==1)
return 0;
else
{
diaoflag=1;
strdigit[digitn]=x;
strdigit[digitn+1]='/0';
digitn++;
}
}
else if (x==' ')
{
if (digitn>0)
spaceflag=2;
else
spaceflag=1;
}
else
return 0;
}
if (digitn>0)
{
cd[cn]=atof(strdigit);
cn++;
return cn;
}
}
double add(double cd[],char cf[],int cn)//cd[]存放数字组,cf[]存放操作数,cn为操作符数
{
double total;
//存放结果
int i;
//循环变量
//分类数字->数字数组和操作符->操作符数组
for(i=1;
i
{
//是的话
if (cf[i]=='*')//分析是乘的话
cd[i]=cd[i-1]*cd[i];
//当前数=上一个数*当前数
else
cd[i]=cd[i-1]/cd[i];
//否则 //当前数=上一个数/当前数
cf[i]=cf[i-1];
//->当前操作为上一操作符
cd[i-1]=0;
//上一个的数字为零
}
total=0;
//总数=第一个数,
for(i=0;
i
if (cf[i]=='+')// 分析操作数是否是'+'
total=total+cd[i];
//是 //总数=总数+当前数
else
total=total-cd[i];
//否 //总数=总数-当前数
}
return total;
//返回总数值.
}
【四则运算计算器】
推荐阅读
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个小故事,我的思考。
- 9班|9班 刘志雪
- 这辈子我们都不要再联系了
- 猎杀IP
- 闲杂“细雨”
- 眼观耳听美食的日子
- 开花店的前景怎么样()
- 我眼中的佛系经纪人
- 拍照一年啦,如果你想了解我,那就请先看看这篇文章