首页 > 其他分享 >C语言简易计算器的两种方法

C语言简易计算器的两种方法

时间:2023-01-03 23:31:26浏览次数:32  
标签:return sub int printf C语言 break 简易 计算器 input

第一种方法   函数指针数组

#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;
}

void menu()
{
printf("*****************\n");
printf("**1.add 2.sub**\n");
printf("**3.mul 4.div**\n");
printf("*****0.exit******\n");
}

int main()
{
int x=0;
int y=0;
int input=0;
int (*pf[5])(int,int)={0,add,sub,mul,div};//数组元素个数可以不写

do
{
menu();
printf("请输入:>\n");
scanf("%d",&input);
if(input>=1 && input<=4)
{
printf("请输入数据:>\n");
scanf("%d%d",&x,&y);
printf("%d\n",pf[input](x,y));

}

else if(input==0)
{
printf("退出\n");
break;
}

else
{
printf("输入错误\n");
break;
}
}while(input);
return 0;
}

第二种方法   switch case语句

#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;
}

void menu()
{
printf("*****************\n");
printf("**1.add 2.sub**\n");
printf("**3.mul 4.div**\n");
printf("*****0.exit******\n");
}

void calc(int (*pf)(int,int))
{
int x=0;
int y=0;
printf("请输入:>");
scanf("%d%d",&x,&y);
printf("%d\n",pf(x,y));
}

int main()
{
int x=0;
int y=0;
int input=0;
do
{
menu();
printf("请输入:>");
scanf("%d",&input);
switch(input)
{
case 1:
calc(add);
break;
case 2:
calc(sub);
break;
case 3:
calc(mul);
break;
case 4:
calc(div);
break;
case 0:
printf("退出\n");
break;
default:
printf("输入错误,请重新输入\n");
break;
}
}while(input);
}


标签:return,sub,int,printf,C语言,break,简易,计算器,input
From: https://blog.51cto.com/u_15922371/5986917

相关文章

  • C语言学习第三天(while循环)
    1、while语句while(表达式)      循环语句:例题:打印1-10:#include<stdio.h>intmain(){inti=1;while(i<=10){printf("%d\n",i);i++;}retu......
  • C语言贪吃蛇大作战
    C语言贪吃蛇大作战贪吃蛇大作战1997年,诺基亚公司发布了贪吃蛇游戏,并将其内置于诺基亚6110手机中,使这款游戏迅速风靡全球,成为一代经典。一般的观点认为,贪吃蛇是手机游......
  • 1003C语言提高专题篇
    1.指针入门到精通指针是什么如果在程序中定义了一个变量,在对程序进行编译时,系统就会给该变量分配内存单元,编译系统根据程序中定义的变量类型,分配一定长度的空间。内......
  • C语言论坛系统[2023-01-03]
    C语言论坛系统[2023-01-03]论坛系统设计课程说明需要提交的内容包括两个部分。第一部分,对代码功能的讲解。课设要求最后每个同学录制一个讲解视频,对着自己代码的功能......
  • c语言--进程相关函数
    1.获取进程ID头文件:#include<unistd.h>pid_tgetpid(void):获取进程IDpid_tgetppid(void):获取父进程IDpid_tgetuid(void):获取用户IDpid_tgeteuid(void):获取有效......
  • c语言刷leetcode——常见数据结构实现
    目录622.设计循环队列641.设计循环双端队列622.设计循环队列typedefstruct{int*queue;intfront;intrear;intcapacity;}MyCircularQueue......
  • Electron入门Demo之桌面应用计算器笔记(二)
    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14307996.html 目录码文不易啊,转载请带上本文链接呀,感谢感谢https://www.cnblogs.co......
  • 数组指针在C语言中的应用
    #include<stdio.h>voidprint1(intarr[3][3],intx,inty){inti=0;for(i=0;i<x;i++){intj=0;for(j=0;j<y;j++){printf("%d",arr[i][j]);}......
  • C语言--指针1
    0.问题的引入 inta=5;a=1024;//把数值1024存放到变量a对应的存储单元的地址中去b=a;//取变量a的值,赋值给b=>在C语言中,任何变量都有两层含义:......
  • c语言获取当前工作路径的实现代码(windows/linux)
    https://www.php1.cn/detail/c_YuYanHuoQuDang_c0079976.html Linux函数名:getcwd功能:取得当前的工作目录用法:char*getcwd(char*buf,size_tsize);函数......