这个小程序实现了三种模式的计算:1、四则运算(两位操作数)2、判断是不是质数3、求阶乘
#include<stdio.h>
#include<math.h>
#include<string.h>
void Calculate(){
//这个四则运算碰到#就结束运算
char c;//通过字符去存放运算符
int i=0;
int signjudge;//符号判断符 通过此变量判断选择何种运算
double a,b;//利用两个变量去存放两个运算数字 注意:当第一次运算过后会保留第一次运算过后的数字到变量a,这是为了去完成连续运算
printf("请输入算式(可连续输入,但仅支持两个运算数,输入#结束运算):\n(输入时请先加空格再加所需算式)\n");
scanf("%lf %c%lf",&a,&c,&b);
while(c!='#')
{
switch(c)
{
case '+':
signjudge=1;
break;
case'-':
signjudge=2;
break;
case'*':
signjudge=3;
break;
case'/':
signjudge=4;
break;
}
switch(signjudge)
{
case 1:
printf("%.0f\n%.0f",a+b,a+b);
a=a+b;
break;
case 2:
printf("%.0f\n%.0f",a-b,a-b);
a=a-b;
break;
case 3:
printf("%.0f\n%.0f",a*b,a*b);
a=a*b;
break;
case 4:
printf("%.0f\n%.0f",a/b,a/b);
a=a/b;
break;
}
scanf(" %c%lf",&c,&b);
}
return;
}
void Judge()
{
int i;
double num;
int flag=1;
double j;
printf("请输入需要判断的数字:\t");
scanf("%lf",&num);
j=(double)sqrt(num);
for(i=2;i<=j;i++)
{
if(((int)num)%i==0)
{
flag=0;
break;
}
}
if(flag)
printf("%.0f是质数\n",num);
else
printf("%.0f不是质数\n",num);
return;
}
void Factorial()
{
int num;
int i;
int sum=1;
printf("请输入需要计算的阶乘数:\n");
scanf("%d",&num);
for(i=1;i<=num;i++)
{
sum*=i;
}
printf("%d!=%d\n",num,sum);
return;
}
int main()
{
int choice;
printf("请选择计算模式:\n\t1.四则运算\n\t2.质数判断\n\t3.计算阶乘\n\t0.退出程序\n");
scanf("%d",&choice);
while(choice!=0)
{
switch(choice)
{
case 1:
Calculate();
break;
case 2:
Judge();
break;
case 3:
Factorial();
break;
}
printf("请选择计算模式:\n");
scanf("%d",&choice);
}
return 0;
}