初衷就是看书看到这里,所以进行了一个简单的实践。
源码如下:
#include<stdio.h>
void add()
{
static int a, b; /*加法*/
printf_s("加法运算\n");
printf_s("请输入一个数字\n");
scanf_s("%d", &a);
printf_s("请输入另一个数字\n");
scanf_s("%d", &b);
a += b;
printf_s("两数相加为%d\n", a);
}
void subtract() /*减法*/
{
static int a, b;
printf_s("减法运算\n");
printf_s("请输入一个数字\n");
scanf_s("%d", &a);
printf_s("请输入另一个数字\n");
scanf_s("%d", &b);
a -= b;
printf_s("两数相减为%d\n",a);
}
void multiply() /*乘法*/
{
static int a, b;
printf_s("乘法运算\n");
printf_s("请输入一个数字\n");
scanf_s("%d", &a);
printf_s("请输入另一个数字\n");
scanf_s("%d", &b);
a *= b;
printf_s("两数相乘为%d\n", a);
}
void eliminates() /*除法*/
{
static int a, b;
printf_s("除法运算\n");
printf_s("请输入一个数字\n");
scanf_s("%d", &a);
printf_s("请输入另一个数字\n");
scanf_s("%d", &b);
if (a&&b == 0) /*除数不能为零*/
{
printf_s("除数不能为0!!error\n");
printf_s("请重新输入~~\n");
printf_s("请输入一个数字\n");
scanf_s("%d", &a);
printf_s("请输入另一个数字\n");
scanf_s("%d", &b);
}
a/= b;
printf_s("两数相除为%d\n", a);
}
int main()
{
int a;
while (1) /*程序循环运行*/
{
printf_s("加法为1,减法为2,乘法为3,除法为4\n");
scanf_s("%d", &a);
if (-1<a&&a>4) /*如果不为1,2,3,4,提示不能继续运行,重新选择*/
{
printf_s("error!!!根据提示选择运算!!!\n");
}
else if (a == 1) /*如果a是1,进行加法运算,下面分别为减,乘,除*/
{
switch (a)
{
case 1:printf_s("你已选择加法运算\n");
add();
break;
}
}
else if (a==2)
{
switch (a)
{
case 2:printf_s("你已选择减法运算\n");
subtract();
break;
}
}
else if (a == 3)
{
switch (a)
{
case 3:printf_s("你已选择乘法运算\n");
multiply();
break;
}
}
else if (a == 4)
{
switch (a)
{
case 4:printf_s("你已选择除法运算\n");
eliminates();
break;
}
}
continue; /*跳回到while,重新运行程序*/
}
}
注:不能输入实型常量、后期会进行更改,并加入新的数学运算。
心得:
可以运用static变量进行分结构化的程序设计,采用的是函数调用,便于后期的修改和维护。