#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来编写代码实现四则运算的生成要考虑很多的东西,如何生成小数,怎么添加括号以及如何写入分数都是要考虑的问题。