计算器简单运行(函数指针数组c语言)

计算器的简单运行(函数指针)
【1.退出函数exit的用法exit(1)
2.五秒倒计时
3.指针数组里存字符串,都在字符常量区
4.函数指针数组的用法
(函数名,&函数名都代表函数的地址】

#include<stdio.h>
#include<windows.h>
#pragma warning (disable:4996)
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)
{
 if (!y)
 {
  printf("div zero!\n");
  return -1;
 }
 else{
  return x / y;
 }
}
int mod(int x, int y)
{
 if (!y)
 {
  printf("mod zero!\n");
  return -1;
 }
 else{
  return x % y;
 }
}
void Menu()
{
 printf("##########################\n");
 printf("##  1.Add         2.Sub ##\n");
 printf("##  3.Mul         4.Div ##\n");
 printf("##  5.Mod         0.exit##\n");
 printf("##########################\n");
 printf("Please Enter>>>");
}

int quit(int x, int y)
{
 printf("Exit done\n");
 int i = 5;//五秒倒计时
 while (i)
 {
  printf("quie second.....%d\r", i--);//\r回车
  Sleep(1000);
 }
 exit(1);
}



int main()
{
 int select;
 const char *op = " +-*/%";
 int(*p[6])(int, int) = { quit, add, sub, mul, _div, mod };//函数指针数组
 for (;;)
 {
  Menu();
  scanf("%d", &select);
  if (select >= 0 && select <= 5)
  {
   if (select == 0)
   {
    p[0](-1, -1);
   }
   int x, y;
   printf("Please Enter (x,y)>>>");
   scanf("%d %d", &x, &y);
   int z = p[select](x, y);
   printf("%d%c%d=%d\n", x, op[select], y, z);
  }
  else
  {
   printf("select error!\n");
  }
 }
 system("pause");
 return 0;
}

猜你喜欢

转载自blog.csdn.net/unique_IT/article/details/91129009