求一个简单计算器的C代码。

来源:百度知道 编辑:UC知道 时间:2024/05/02 06:39:46
要求:1.实现“+”,“-”“*”,“/”四则运算,且为简单的整数运算。可单步求值和多步求值。
2.输入整个算式后按“=”或回车输出运算结果。
3.当算式输入错误时,会显示错误提示。
4. 计算器面板如下:
输入框(未画)
1 2 3 + -
4 5 6 * /
7 8 9 =
0 end
面板四周为边框,输入时用键盘输入,在输入框中显示算式,结果及出错提示,面板只做样式,并不通过面板进行输入。
注:必须是c程序编写的代码。

论回答情况另追加赏分。
那个面板的第一行与其他几行是对齐的。。。
可在TC下运行。

#include<stdio.h>
#include<math.h>
#include<malloc.h>

double jisuan(char a[])
{
int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;
char nibo[50],zhan2[50];
double x,n,l,z=0,zhan3[50];
typedef struct
{
double d1;
int d2;
}dd;
typedef struct
{
dd data[50];
int top;
}zhan1;
zhan1 *shu;
shu=(zhan1 *)malloc(sizeof(zhan1));
shu->top=0;
while(a[i]!='\0')
{
if(a[i]>='0'&&a[i]<='9')
{
z=0;
j=i+1;
while(a[j]>='0'&&a[j]<='9')
{j++;}
j--;
for(k=i;k<=j;k++)
{
z=z*10+a[k]-'0';
}
j=j+1;
x=z;
if(a[j]=='.')
{
l=1;
i=j+1;
j=i+1;
while(a[j]>='0'&&a[j]<='9')
{j++;}
j--;<