这道题可以通过多实例和switch结合实现,代码如下:
#include<stdio.h>
int main(void)
{
int a,b;
char c;//表示符号
while(scanf("%d %c",&a,&c)!=EOF)
if(c!='!')
{
scanf("%d",&b);
switch(c)//依次判断加减乘除进行处理
{
case '+':printf("%d\n",a+b);
break;
case '-':printf("%d\n",a-b);
break;
case '*':printf("%d\n",a*b);
break;
case '/':if(b!=0)
printf("%d\n",a/b);
else
printf("error\n");//除数为0时
break;
case '%':if(b!=0)
printf("%d\n",a%b);
else
printf("error\n");//求余运算的第二个运算数为0时
break;
}
}
else//算阶乘
{
int s=1;//注意数据的初始化
for(int i=2;i<=a;i++)
s=s*i;
printf("%d\n",s);
}
return 0;
}
注意多实例数据的初始化和结果换行。