四则运算2.0版

 

#include<stdio.h>
#include<stdlib.h>
#include <time.h>
#define N 30
main()
{
    int a,b,k,j=0,i,n,num1,num2,num3,num4;
    int e,f,g,h,getanswer;//e为记录用户的题量,f为用户的答题答案 
    char op,op1;
    int num5,num6,num7,num8;//临时变量
    srand(time(NULL));
    do{
    printf("\n请输入数字类型(1.整数 2.真分数) -1为退出程序:     ");
    while(!(scanf("%d",&n)))
{
printf("\n 非法输入,请重新输入:");
fflush(stdin);
}
    
    switch(n)
    {
    case 1:
        {
            printf("用户请输入题量:");
            while(!(scanf("%d",&e)))
            {
                printf("\n 非法输入,请重新输入:");
                fflush(stdin);
            }
            for(i=0;i<e;i++)
            {
                a=rand()%100+1;
                b=rand()%100+1;
                k=rand()%4+1;
                printf("%d",a);
                switch(k)
                {
                case 1:printf("+");
                    op='+';
                    break;
                case 2:printf("-");
                        op='-';
                        break;
                case 3:printf("*");
                        op='*';
                        break;
                case 4:printf("/");
                        op='/';
                        break;
                }
                printf("%d=",b);
                while(!(scanf("%d",&f)))
                {
                    printf("\n 非法输入,请重新输入:");
                    fflush(stdin);
                }
                switch(op)
                {   
                case '+':   
                    getanswer=a+b;   
                    break;
                case '-':   
                    getanswer=a-b;
                    break;
                case '*':   
                    getanswer=a*b;
                    break;
                case '/':  
                    getanswer=a/b;   
                    break; 
                }
                if(f==getanswer)
                {
                    printf("\n做对了\n");
                    j++;
                }
                else
                {
                    printf("\n做错了\n");
                }
            }
                printf("用户总共答对了%d道题目!",j);
            break;
        }
            break;
    case 2:
        {    printf("用户请输入题量:");
            while(!(scanf("%d",&e)))
            {
                printf("\n 非法输入,请重新输入:");
                fflush(stdin);
            }
            for(i=0;i<e;i++)
            {
                num1=rand()%10+1;
                num2=rand()%10+1;
                num3=rand()%10+1;
                num4=rand()%10+1;
                if(num1>num2)
                {
                    num5=num1;
                    num1=num2;
                    num2=num5;
                }
                if(num3>num4)
                {
                    num5=num3;
                    num3=num4;
                    num4=num5;
                }
                op='+';
                num6=num1*num4+num2*num3;
                num7=num2*num4;
                num8=num6;
                while(num8>1)
                {
                    if(num6%num8==0 && num7%num8==0)
                    {
                        num6=num6/num8;
                        num7=num7/num8;
                    }
                    num8--;
                }
                printf("\n(%d/%d)%c(%d/%d)=",num1,num2,op,num3,num4);


                    
                while(!(scanf("%d%c%d",&g,&op1,&h)))
                {
                    printf("\n 非法输入,请重新输入:");
                    fflush(stdin);
                }
                
                if((g==num6)&&(h==num7))
                {
                    printf("\n做对了\n");
                    j++;
                }
                else
                {
                    printf("\n做错了\n");
                }
            }
                printf("用户总共答对了%d道题目!",j);
        }
        break;
    
        
        }
    }while(n!=-1);
}

 

posted @ 2015-03-31 16:06  15吕日荣  阅读(229)  评论(2编辑  收藏  举报