zoukankan      html  css  js  c++  java
  • 用C++实现编写一定数量的四则运算数学题并检验结果

    如何用C语言实现编写一定量的四则运算题,并检验结果,要求数字的范围在10~100之间?下面是一个算法。

    首先,要考虑到需要调用随机生成数字的函数,在函数一开始声明。然后定义数组,存储所需要的数字。再提示输入你所需要的题目的个数,然后用随机函数生成这些数字,对于减法结果出现负数与分数出现假分数,用判断语句先判断是否出现上述的情况,如果出现,重新生成新的数。然后提示输入计算的结果,再输出真正的结果,以便于比较对错。这里定义了两种数组,一种是整形,一种是浮点型,这是为了方便最后结果的计算,最后的结果以两位小数的形式输出,程序结束。

    下面是具体的C++代码:

    #include <stdio.h>
    #include <stdlib.h>
    main()
    {
    int i,j,n,a[1000],b[1000],c[1000],d[1000],e[1000],f[1000];//定义6个字符数组存储数字
    float answer1[1000],a1[1000],b1[1000],c1[1000],d1[1000],e1[1000],f1[1000];//定义7个双精度数组计算结果并存储结果
    printf("请输入题目个数: ");
    scanf("%d",&j);//输入题目个数
    for(i=0;i<j;i++)
    {
    a[i]=rand()%90+10;//选取10~90之间的任意一个数
    b[i]=rand()%90+10;
    c[i]=rand()%90+10;
    while((b[i]<c[i])||(b[i]==c[i]))//判断减法是否结果为负数,如果为负重新再生成一个数
    {
    c[i]=rand()%90+10;
    }
    d[i]=rand()%90+10;
    e[i]=rand()%90+10;
    f[i]=rand()%90+10;//继续生成剩余数字
    while((a[i]>f[i])||(a[i]==f[i]))//判断分数是否为真分数,若不是,重新生成
    f[i]=rand()%90+10;
    }
    printf("计算下列各题: ");
    for(n=0;n<j;n++)
    printf("%d/%d+(%d-%d)×%d÷%d ",a[n],f[n],b[n],c[n],d[n],e[n]);//输出最终的算式
    printf("请输入题目答案: ");
    for(i=0;i<j;i++)
    scanf("%f",&answer1[i]);
    for(i=0;i<j;i++)
    {a1[i]=a[i];
     b1[i]=b[i];
     c1[i]=c[i];
     d1[i]=d[i];
     e1[i]=e[i];
     f1[i]=f[i];
    }//提示输入你算得的结果
    printf("正确答案: ");
    for(i=0;i<j;i++)
    {
    printf("%.2f ",(float)(a1[i]/f1[i]+(b1[i]-c1[i])*d1[i]/e1[i]));//输出正确结果
    }
    return 0;
    }

    运行结果:

    此程序实现了加减乘除和分数的计算,并能够正确的以两位小数的形式输出最终结果。但是此程序还有两个缺陷,它的每一道算式题的数字个数是一定的,而且运算符号的位置也是固定的,而且结果以两位小数的形式输出,不是以分数的形式输出。

  • 相关阅读:
    三角函数
    第十七次作业
    第十六次作业
    第15次作业
    第13次java作业
    第十二次java作业
    第十一次java作业
    第十次java作业
    第九次java
    第八次java作业
  • 原文地址:https://www.cnblogs.com/njzy123456/p/9774294.html
Copyright © 2011-2022 走看看