闲来无事,写了个简易计算器

题目如下:

计算器能进行加、减、乘、除运算。要求从键盘输入指令及操作数,如:add 3 26 //计算3+26的值,并返回结果

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int add(int x,int y)
{
return x+y;
}
int sub(int x,int y)
{
return x-y;
}
int mux(int x,int y)
{
return x*y;
}
int dive(int x,int y)
{
return x/y;
}
int process(int a,int b,int (*fun)(int a,int b))
{
int result=(*fun)(a,b);
return result;
}
int (*fun[4])(int ,int )={add,sub,mux,dive};//函数指针数组
char *p[4]={"add","sub","mux","dive"};
int main(int argc, char *argv[])
{
char *input[4];
int a=0,b=0,i=0;
int result=0;
char buf[20]="";//存放输入数据
char *cmd;//存放计算方式

while(1)
{
input[0]=NULL;
input[1]=NULL;
input[2]=NULL;
printf("请输入选择方式及数据\n");
i=0;
input[3]=NULL;
gets(buf);


input[i]=strtok(buf," ");
while(input[i]!=NULL)
{
i++;
input[i]=strtok(NULL," ");
}
cmd=input[0];
if(input[1]==NULL||input[2]==NULL)
{
printf("输入参数不够\n");
continue;
}
a=atoi(input[1]);
b=atoi(input[2]);

for(i=0;i<4;i++)
{
if(strcmp(cmd,p[i])==0)
{
result=process(a,b,fun[i]);
printf("result=%d\n",result);
break;
}
}
}
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值