#include<stdio.h>
#include<math.h>
#include<time.h>
void main()
{
char f;
double a;
double b;
int c;
int i;
int n,n1,n2,n3,x,x1;
while(1)
{
printf("输入想要生成的题目数:");
scanf("%d",&n);
printf("输入计算的最大范围:");
scanf("%d",&n1);
printf("是否存在乘除法(1.是,2否):");
scanf("%d",&n2);
printf("是否存在小数(1.是,2否):");
scanf("%d",&n3);
if(n3==1)
{
printf("保留几位小数:");
scanf("%d",&x);
}
x1=pow(10,x);
for(i=0;i<n;i++)
{
if(n3==1)
{
a=rand()%n1+(float)(rand()%(x1+1))/pow(10,x);
b=rand()%n1+(float)(rand()%(x1+1))/pow(10,x);
}
else
{
a=rand()%n1+1;
b=rand()%n1+1;
}
if(n2==1) c=rand()%4+1;
else c=rand()%2+1;
switch(c)
{ case 1: f=‘+‘;
break;
case 2: f=‘-‘;break;
case 3: f=‘*‘;break;
case 4: f=‘/‘;break;
}
printf("\n%.*lf%c%.*lf= \n",x,a,f,x,b);
}
if(n==0) break;
}
}
这段编码实现了随机生成四则运算并且可以选择以下几个功能:
1、生成的题目数
2、计算的最大范围
3、是否存在乘除法
4、是否存在小数并选择保留几位小数
没有实现的功能:
1、是否有括号
2、不支持分数
感想:虽然四则运算是我们小学就开始学的东西,可是如果用c来编写代码实现四则运算的生成要考虑很多的东西,如何生成小数,怎么添加括号以及如何写入分数都是要考虑的问题。
原文:http://www.cnblogs.com/ZHL-Dragon/p/4366776.html