四则运算改上改

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include<string.h>

main()

{

    int i,j,k,e,d,d1,e1,l,f;

    int a,b,c,g,h,m,n,o;

    int q=0,w=0,q1=0,w1=0,q2=0,w2=0;

    float sum;

    srand((int)time(0));

    printf("现在进入四则运算测试,输入-1退出测试!\n\n");

    do{

        a=rand()%100+1;

        b=rand()%100+1;

        g=rand()%100+1;

        h=rand()%100+1;

        k=rand()%5+1;

        f=rand()%4+1;

        c=max(a,b);

        a=min(a,b);

        g=max(g,h);

        m=min(g,h);

        switch(k){

        case 1:printf("%d*%d=",c,a);d=c*a;    break;

        case 2:

            {

                printf("%d/%d=",a,c);

                (float)d=(float)a/(float)c;    

                for(i=1;i<=c;i++)

                    for(j=1;j<=a;j++)

                    {

                        (float)l=(float)j/(float)i;

                        if(l==d)

                        {

                            c=i;

                            a=j;

                            break;

                        }

                    }

                break;

            }

        case 3:printf("%d+%d=",c,a);d=c+a;    break;    

        case 4:printf("%d-%d=",c,a);d=c-a;  break;

        case 5:

            {

                printf("%d/%d",a,c);

                switch(f){

                case 1:

                    {

                        printf(" * %d/%d=",m,g);

                        n=a*m;

                        o=c*g;

                        break;

                    }

                case 2:

                    {

                        printf(" / %d/%d=",m,g);    

                        n=a*g;

                        o=c*m;

                        break;

                    }

                case 3:

                    {

                        printf(" + %d/%d=",m,g);    

                        n=a*g+c*m;

                        o=c*g;

                        break;

                    }

                case 4:

                    {

                        printf(" - %d/%d=",m,g);    

                        n=a*g-c*m;

                        o=c*g;

                        break;

                    }

                }

            }



        }

        if(k==2)

        {

            scanf("%d/%d",&e,&e1);

            (float)d1=(float)e/(float)e1;

            if(e==a&&e1==c)

            {

                printf("回答正确!\n\n");

                q++;

            }

            else

            {

                printf("回答错误!\n\n");

                w++;

            }

        }

        if(k!=2&&k!=5)

        {

            scanf("%d",&e);

            if(e==d)

            {

                printf("回答正确!\n\n");

                q1++;

            }

            else

            {

                printf("回答错误!\n\n");

                w1++;

            }

        }

        if(k==5)

        {

            scanf("%d/%d",&e,&e1);

            if((float)(n/o)==(float)(e/e1))

            {

                printf("回答正确!\n\n");

                q2++;

            }

            else

            {

                printf("回答错误!\n\n");

                w2++;

            }

        }

    }while(e!=-1);

    sum=((float)(q+q1+q2)/(float)(q+q1+q2+w+w1+w2-1))*100;

    printf("此次答题正确率为 %.2f%%\n",sum);

}

此次修改的最要问题就是添加分数的运算部分,之前由于想得不是很够,

只能做到对于一个分数的约分,现在添加的部分能够在一定程度上实现分数的加减乘除。

程序还有一个问题还没有做到,在加法的那一部分,还存在加出来可能是大于1的结果。

你可能感兴趣的:(四则运算)