闲来无事,写了个简易计算器
2016-11-15 21:59
232 查看
题目如下:
计算器能进行加、减、乘、除运算。要求从键盘输入指令及操作数,如: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;
}
计算器能进行加、减、乘、除运算。要求从键盘输入指令及操作数,如: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;
}
相关文章推荐
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能
- 闲来无事,写个算法关于1-1000放在含有1001个元素。。。
- 闲来无事,写下js的冒泡排序
- 闲来无事,对链表做了一下整理...
- 闲来无事,复习复习以前的东西---hibernate中的关联映射图解----多对一
- 初学Java闲来无事写的黑舍友的代码
- 妖哲的日常1——闲来无事搭建一个个人站点吧!
- 转载——最近百度云盘不提供搜索,闲来无事,玩玩python爬虫,爬一下百度云盘的资源
- 自己闲来无事写一个mvc玩具
- 闲来无事,给代码做一次归档
- 闲来无事写一写拿网站做App数据数据的
- [置顶] SpringMvc的手写版(PS:只是闲来无事写的简化版,仅供大家理解SpringMvc的运作原理)
- 闲来无事学习小项目
- 闲来无事写个简单的内网穿透
- 闲来无事之--记用BAT(批处理脚本)实现文件下载功能(续)
- 闲来无事,过了三天“神雕侠侣”的生活
- 闲来无事
- 晓潘:闲来无事,发一些笑话恶搞 [此博文包含图片]
- 闲来无事,写了一个比较完整的计算器
- 闲来无事