计算器的简单运行(函数指针)
【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;
}