用C语言编一个简单的计算器小程序

如题所述

第1个回答  推荐于2016-08-13
你说的是 vc 还是 tc 啊???
其他的运算:
#include <stdio.h>
int add(int x,int y) {return x+y;}
int sub(int x,int y) {return x-y;}
int mul(int x,int y) {return x*y;}
int div(int x,int y) {return x/y;}
int (*func[])()={add,sub,mul,div};
int num,curch;
char chtbl[]="+-*/()=";
char corch[]="+-*/()=0123456789";
int getach() {
int i;
while(1) {
curch=getchar();
if(curch==EOF) return -1;
for(i=0;corch[i]&&curch!=corch[i];i++);
if(i<strlen(corch)) break;
}
return curch;
}

int getid() {
int i;
if(curch>='0'&&curch<='9') {
for(num=0;curch>='0'&&curch<='9';getach()) num=10*num+curch-'0';
return -1;
}
else {
for(i=0;chtbl[i];i++) if(chtbl[i]==curch) break;
if(i<=5) getach();
return i;
}
}

int cal() {
int x1,x2,x3,op1,op2,i;
i=getid();
if(i==4) x1=cal(); else x1=num;
op1=getid();
if(op1>=5) return x1;
i=getid();
if(i==4) x2=cal(); else x2=num;
op2=getid();
while(op2<=4) {
i=getid();
if(i==4) x3=cal(); else x3=num;
if((op1/2==0)&&(op2/2==1)) x2=(*func[op2])(x2,x3);
else {
x1=(*func[op1])(x1,x2);
x2=x3;
op1=op2;
}
op2=getid();
}
return (*func[op1])(x1,x2);
}

void main(void) {
int value;
printf("Please input an expression:\n");
getach();
while(curch!='=') {
value=cal();
printf("The result is:%d\n",value);
printf("Please input an expression:\n");
getach();
}
}
只能 + - * /本回答被提问者采纳
第2个回答  2007-05-03
没有悬赏,人们都没有动力啊!
呵呵
第3个回答  2020-01-27
你说的是
vc
还是
tc
啊???
其他的运算:
#include
<stdio.h>
int
add(int
x,int
y)
{return
x+y;}
int
sub(int
x,int
y)
{return
x-y;}
int
mul(int
x,int
y)
{return
x*y;}
int
div(int
x,int
y)
{return
x/y;}
int
(*func[])()={add,sub,mul,div};
int
num,curch;
char
chtbl[]="+-*/()=";
char
corch[]="+-*/()=0123456789";
int
getach()
{
int
i;
while(1)
{
curch=getchar();
if(curch==EOF)
return
-1;
for(i=0;corch[i]&&curch!=corch[i];i++);
if(i<strlen(corch))
break;
}
return
curch;
}
int
getid()
{
int
i;
if(curch>='0'&&curch<='9')
{
for(num=0;curch>='0'&&curch<='9';getach())
num=10*num+curch-'0';
return
-1;
}
else
{
for(i=0;chtbl[i];i++)
if(chtbl[i]==curch)
break;
if(i<=5)
getach();
return
i;
}
}
int
cal()
{
int
x1,x2,x3,op1,op2,i;
i=getid();
if(i==4)
x1=cal();
else
x1=num;
op1=getid();
if(op1>=5)
return
x1;
i=getid();
if(i==4)
x2=cal();
else
x2=num;
op2=getid();
while(op2<=4)
{
i=getid();
if(i==4)
x3=cal();
else
x3=num;
if((op1/2==0)&&(op2/2==1))
x2=(*func[op2])(x2,x3);
else
{
x1=(*func[op1])(x1,x2);
x2=x3;
op1=op2;
}
op2=getid();
}
return
(*func[op1])(x1,x2);
}
void
main(void)
{
int
value;
printf("Please
input
an
expression:\n");
getach();
while(curch!='=')
{
value=cal();
printf("The
result
is:%d\n",value);
printf("Please
input
an
expression:\n");
getach();
}
}
只能
+
-
*
/
第4个回答  2019-12-06
你说的是
vc
还是
tc
啊???
其他的运算:
#include
<stdio.h>
int
add(int
x,int
y)
{return
x+y;}
int
sub(int
x,int
y)
{return
x-y;}
int
mul(int
x,int
y)
{return
x*y;}
int
div(int
x,int
y)
{return
x/y;}
int
(*func[])()={add,sub,mul,div};
int
num,curch;
char
chtbl[]="+-*/()=";
char
corch[]="+-*/()=0123456789";
int
getach()
{
int
i;
while(1)
{
curch=getchar();
if(curch==EOF)
return
-1;
for(i=0;corch[i]&&curch!=corch[i];i++);
if(i<strlen(corch))
break;
}
return
curch;
}
int
getid()
{
int
i;
if(curch>='0'&&curch<='9')
{
for(num=0;curch>='0'&&curch<='9';getach())
num=10*num+curch-'0';
return
-1;
}
else
{
for(i=0;chtbl[i];i++)
if(chtbl[i]==curch)
break;
if(i<=5)
getach();
return
i;
}
}
int
cal()
{
int
x1,x2,x3,op1,op2,i;
i=getid();
if(i==4)
x1=cal();
else
x1=num;
op1=getid();
if(op1>=5)
return
x1;
i=getid();
if(i==4)
x2=cal();
else
x2=num;
op2=getid();
while(op2<=4)
{
i=getid();
if(i==4)
x3=cal();
else
x3=num;
if((op1/2==0)&&(op2/2==1))
x2=(*func[op2])(x2,x3);
else
{
x1=(*func[op1])(x1,x2);
x2=x3;
op1=op2;
}
op2=getid();
}
return
(*func[op1])(x1,x2);
}
void
main(void)
{
int
value;
printf("Please
input
an
expression:\n");
getach();
while(curch!='=')
{
value=cal();
printf("The
result
is:%d\n",value);
printf("Please
input
an
expression:\n");
getach();
}
}
只能
+
-
*
/
第5个回答  2007-05-11
我是初学者,不知道能不能用;
#include<stdio.h>
float power(char, float, float);
main()
{
float a,b,c;
char ch;
printf("put");
scanf("%f",&a);
for(;(ch=getchar())!='\n';)
{
scanf("%f",&b);
if(ch=='/'&&b==0)
{
c=0;break;
}
else
{

c=1;
a=power(ch,a,b);
}
}

if(c)
printf("=%f",a);

else

printf("error!");
}
float power(char ch, float x, float y)
{
switch(ch)
{case'*':x=x*y;break;
case'/':x=x/y;break;
case'+':x=x+y;break;
case'-':x=x-y;break;
}
return(x);

用C语言编一个简单的计算器小程序
int i;while(1) { curch=getchar();if(curch==EOF) return -1;for(i=0;corch[i]&&curch!=corch[i];i++);if(i<strlen(corch)) break;} return curch;} int getid() { int i;if(curch>='0'&&curch<='9') { for(num=0;curch>='0'&&curch<='9';getach()) nu...

怎样用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器?
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File;2、输入预处理命令和主函数:include<stdio.h> \/*函数头:输入输出头文件*\/ void main()\/*空类型:主函数*\/ 3、定义变量:int a,b,d; \/*定义变量的数据类型为整型*\/ char c;\/*定义变量的数据类型为字符型*\/ 4、输入四则运算...

求C语言的小程序
include <stdio.h>const int k=10;int find(int *a){ int max=a[0]; for(int i=0;i<k;i++) { printf("%d ",a[i]); if(a[i]>max) max=a[i]; } return max;}int sort(int *a){ int temp; for(int i=0;i<k;i++) { for(in...

怎么用c语言编写一个小程序?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

帮我写几个简单的C语言的小程序吧!老师要求用循环语句。谢谢啦!_百 ...
void no1(unsigned x){ int i;for(i=1;i<=x;i++){ if(x%i==0){ printf("%u \\n",i);} } } void no2(void){ int i,j;for(i=0;i<5;i++){ for(j=0;j<=i;j++){ printf("%d",1);} putchar('\\n');} } void no3(unsigned x){ int i,j;for(i=2;i<=x;...

用C语言编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数...
int main(){ int a[10];\/\/每个数字的计数器 int num;int i;char ch[100],*ch1,num1;for(i = 0;i < 10;i++)a[i] = 0;printf("请输入一个整数:");scanf("%d",&num);itoa(num,ch,10); \/\/将数字转化为字符串 for(ch1 = ch;ch1<ch+strlen(ch);ch1++){ num1 = *ch...

谁能用C语言帮我写几个小程序 急求
1、include<stdio.h> int main(){ int max(int x,int y,int z);int a,b,c,d;scanf("%d%d%d",&a,&b,&c); \/\/scanf%d间不能有逗号,后面是输入的地址因此得加& d=max(a,b,c); \/\/输入的是abc,不是x,y,z\/\/x,y,z是形参a,b,c是实参 printf("max=%d",d);\/\/不是print是...

c语言,输入两位数实现加减乘除小程序
给你个思路自个写:大部分我已经写出来了,改改就能用了。。。int a,b;scanf("%d%d",&a,&b);\/\/ 输入两个数;c=a+b;d=a*b;e=a-b;f=a\/b;printf("%d,%d,%d,%d,"c,d,e,f);

有谁能帮我指点一下这个C语言写一个只有加减乘除的的小程序
void main(){ char op;int data1,data2;double answer;printf("Please input data1 op data2:");scanf(" %d%c%d",&data1,&op,&data2);switch (op){ case '+':answer=data1+data2;printf("%d+%d=%lf\\n",data1,data2,answer);break;case '-':answer=data1-data2;printf("%d-...

会C语言的朋友帮个忙啊 帮我编个小程序
会C语言的朋友帮个忙啊 帮我编个小程序 一、总体要求1、对实际问题进行分析、写出算法分析。2、设计程序结构3、给出设计的各模块。4、提交各应用程序的源程序清单。6、课程设计选择turboc二、课程设计的内容和具体要求主要包... 一、总体要求1、对实际问题进行分析、写出算法分析。2、设计程序结构3、给出设计...

相似回答