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

 

posted on 2015-03-25 20:02  24朱浩龙  阅读(203)  评论(1编辑  收藏  举报