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

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

你说的是 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=0corch[i]&&curch!=corch[i]i++)

if(i<strlen(corch)) break

}

return curch

}

int getid() {

int i

if(curch>='0'&&curch<='9') {

for(num=0curch>='0'&&curch<='9'getach())num=10*num+curch-'0'

return -1

}

else {

for(i=0chtbl[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()

}

}

只能 + - * /

属于并行编程的问题,C语言本身并不具备并行计算能力,可以通过系统API调用实现。编写一个调度程序,然后通过这个调度程序调度你的小程序占用某个核心,你的小程序本身不能决定自己占用哪个核心。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11241267.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存