作业1提升题

#include <stdlib.h>
#include <stdio.h>
#include <time.h> 
main( )
{
    
    int i;
    int a,b,c,e,g,f,j;
    int k,d,h;
    float u,v;
    char p;
    int count=0;
    srand( (unsigned int)time( NULL ) ); 
    for(i=1;i<31;i++)
    {

       a=rand()%10+1;
       b=rand()%10+1;
       g=rand()%10+1;
       f=rand()%10+1;
       c=rand()%4+1;
       while(f==0||g==0)
       {
               g=rand()%10+1;
            f=rand()%10+1;
       }

       


       if(c==1)
       {
           printf("(%d) %d/%d+%d/%d=\n",i,a,g,b,f);
           if(g==f)
           {
               d=a+b;
               h=f;
           }
           else if(g%f==0)
           {
               d=a+b*(g/f);
               h=g;
           }
           else if(f%g==0)
           {
               d=a*(f/g)+b;
               h=f;
           }
           else
           {
               d=a*f+b*g;
               h=g*f;
           }

       }
       else if(c==2)
       {
           while(a<b)
           {
               a=rand()%10+1;
               b=rand()%10+1;
           }
           printf("(%d) %d/%d-%d/%d=\n",i,a,g,b,f);
           if(g==f)
           {
               d=a-b;
               h=f;
           }
           else if(g%f==0)
           {
               d=a-b*(g/f);
               h=g;
           }
           else if(f%g==0)
           {
               d=a*(f/g)-b;
               h=f;
           }
           else
           {
               d=a*f-b*g;
               h=g*f;
           }
       }
       else if(c==3)
       {
           printf("(%d)( %d/%d)*(%d/%d)=\n",i,a,g,b,f);
           d=a*b;
           h=g*f;
       }
       else
       {
           printf("(%d)(%d/%d)/(%d/%d)=\n",i,a,g,b,f);
           d=a*f;
           h=g*b;

       }

       printf("输入计算答案:");
       scanf("%d%s%d",&e,&p,&j);
       if(h%k==0&&d%k==0)
       {
           h=h/i;
           d=d/i;
       }
       else
       {
           u=(float)e/j;
           v=(float)d/h;
           if(u==v)
           {
               printf("结果正确!\n");
               count=count+1;
           }
           else
           {
               printf("结果不正确!\n");
               
               printf("正确答案为:%d/%d\n",d,h);
           }
       }
    }
    printf("一共答对了:%d道题\n",count);
    if(count==30)
    {
        printf("太棒了!\n");
    }
    else
    {
        printf("请继续努力!\n");
    }
}

作业1提升题_第1张图片

刚刚开始思考能够识别用户输入的分数的功能时候,真的无从下手%>_<%。但是换个思路想,其实我可以将分子分母拆开来计算,然后定义一个char型来识别用户输入的符号“\”,然后就实现这个功能啦~~我会继续加油的!

你可能感兴趣的:(作业)