计算器源代码

来源:互联网 发布:淘宝怎么一键上传宝贝 编辑:程序博客网 时间:2024/05/17 06:36

1
#include<stdio.h>
#include<string.h>

void Calculate(double Numbers[],char Op[],long length);
void MinusLength(double Numbers[],char Op[],long j,long length);

void main()
{
long length=0;

double *Numbers=new double[];
char *Op=new char[];

printf("Please input a expression./n");
printf("Press 'Enter' at the end./n");

while(Op[length-1]!='/n')
{
scanf("%lf",&Numbers[length]);
scanf("%c",&Op[length]);
length++;
}

Calculate(Numbers,Op,length);
}


void Calculate(double Numbers[],char Op[],long length)
{
long i=0,j=0;

for(j=0;j<=length;j++) /*
先处理乘除*/
{
if(Op[j]=='*')
{
Numbers[j]*=Numbers[j+1];
MinusLength(Numbers,Op,j,length);
}
if(Op[j]=='/')
{
Numbers[j]/=Numbers[j+1];
MinusLength(Numbers,Op,j,length);
}
}

for(j=0;j<=length;j++) /*
再处理加减*/
{
if(Op[j]=='+')
{
Numbers[j]+=Numbers[j+1];
MinusLength(Numbers,Op,j,length);
}
if(Op[j]=='-')
{
Numbers[j]-=Numbers[j+1];
MinusLength(Numbers,Op,j,length);
}
}

printf("The answer is %lf/n",Numbers[0]);
}

/*
字符串向前缩减*/
void MinusLength(double Numbers[],char Op[],long j,long length)
{
long i=0;

for(i=j+1;i<=length;i++)
{
Numbers[i]=Numbers[i+1];
Op[i-1]=Op[i];
}
length--;
j--;
}

原创粉丝点击