文章出處

#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的結果。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()