• 练习一(升级版)


    #include<stdio.h>
    #include<time.h>
    #include<stdlib.h>
    void main()
    {
        int c,d,e,f;
        int x,right=0,wrong=0;
        float a,a1,a2,a3;
        int flag=0;
        char cc;
        srand((unsigned int)time(NULL));
        do{
            flag=0;
            x=rand()%4;
            c=rand()%10+1;
            d=rand()%10+1;
            e=rand()%10+1;
            f=rand()%10+1;
            if(c<=d&&e<=f&&d!=0&&f!=0)
            {   
                a1=(float)c/d;
                a2=(float)e/f;
                 switch(x)
                {
                case 0:
                    printf("(%d/%d)  +  (%d/%d) = ",c,d,e,f);
                    break;
                case 1:
                    printf("(%d/%d)  -  (%d/%d) = ",c,d,e,f);
                    break;
                case 2:
                    printf("(%d/%d)  *  (%d/%d) = ",c,d,e,f);
                    break;
                case 3:
                    printf("(%d/%d)  ÷ (%d/%d) = ",c,d,e,f);
                    break;
                }
                scanf("%f",&a);
                switch(x)
                {
                case 0:
                    if(a1+a2==a)
                    {
                        printf("计算正确!
    ");right++;
                    }
                    else
                    { 
                        a3=a1+a2;
                        printf("计算错误!答案应为:%f
    ",a3);wrong++;
                    }
                    break;
                case 1:
                    if(a==a1-a2)
                    {
                        printf("计算正确!
    ");right++;
                    }
                    else
                    {
                        a3=a1-a2;
                        printf("计算错误!答案应为:%f
    ",a3);wrong++;
                    }
                    break;
                 case 2:
                     if(a==a1*a2)
                     {
                        printf("计算正确!
    ");right++;
                     }
                     else
                     {
                         a3=a1*a2;
                         printf("计算错误!答案应为:%f
    ",a3);wrong++;
                     }
                     break;
                 case 3:
                     if(a==a1/a2)
                     {
                         printf("计算正确!
    ");right++;
                     }
                     else
                     {
                         a3=a1/a2;
                         printf("计算错误!答案应为:%f
    ",a3);wrong++;
                     }
                     break;
                }
                printf("按任意键继续,q则退出!
    ");
            //  scanf("%d",&quit);
           //  if(quit==0)
                cc=getchar();
                printf("
    ");
            }
        }while(cc!='q');
        printf("共答对%d道题,共答错%d道题
    ",right,wrong);
    }
       在练习1的基础上,添加真分数,判断是否为真分数,前提是分子不大于分母切分母不为0。
    一开始运行的时候,输入正确答案,可是判断的答案是显示错误的。找到输入答案的那一行代码,发现输入格式是错的,应为%f。
    在原基础上修改花了半个小时。 
  • 相关阅读:
    find命令之xargs
    find命令之exec
    find 命令概览
    mv命令
    locate 命令
    whereis 命令
    linux which 查看可执行文件的位置
    Linux应用总结:自动删除n天前日志
    Visual Studio
    Visual Studio- “无法启动此程序,因为计算机中丢失 xxx.dll尝试重新安装该程序以解决此问题"
  • 原文地址:https://www.cnblogs.com/ZeJuan/p/4385031.html
Copyright © 2020-2023  润新知