zoukankan      html  css  js  c++  java
  • 四则运算二

    要求:

    悲催的二柱子接到了老师要求给软件增加一些小小的功能,具体要求如下:

    1、除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性);

    2、一次出的题目避免相互重复;

    3、可定制出题的数量。

    设计思想:

         程序的主要设计思想为用字符串数组保存生成的运算题,将操作数采用单独算法处理,然后进行类型转换和操作符一起存入数组中,鉴于字符串的特性,可以对字符串的长度进行随意添加而不必考虑长度问题,最后进行字符串数组的输出产生客户要求的运算题;

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    int A();
    int B();
    int C();
    int A()
    {int m,n,r,num1,num2,num3;
    srand((unsigned)time(NULL));
    m=rand()%100+1;
    n=rand()%100+1;
    if (m<n)
    {r=m;m=n;n=r;}
    char op_lib[4]={'+','*','/','-'};
    int rand_oper_idx=rand()%4;
    char cur_oper=op_lib[rand_oper_idx];
    if(cur_oper=='+')num1=m+n;
    else if(cur_oper=='*')num1=m*n;
    else if(cur_oper=='/')num1=m/n;
    else (cur_oper=='-')num1=m-n;
    printf ("%d,%c,%d=
    ",m,cur_oper,n);
    scanf(“%d”,&num2);
    if (num2==num1)
    {printf("答案正确”);num3=1;}
    else {printf("答案错误");num3=0;}
    }
    int B()
    {double m,n,r,num1,num2;int num3;
    m=rand()/(double)(RAND_MAX);
    n=rand()/(double)(RAND_MAX);
    if (m<n)
    {r=m;m=n;n=r;}
    char op_lib[4]={'+','*','/','-'};
    int rand_oper_idx=rand()%4;
    char cur_oper=op_lib[rand_oper_idx];
    if(cur_oper=='+')num1=m+n;
    else if(cur_oper=='*')num1=m*n;
    else if(cur_oper=='/')num1=m/n;
    else (cur_oper=='-')num1=m-n;
    printf ("%lf,%c,%lf=
    ",m,cur_oper,n);
    scanf(“%lf”,&num2);
    if (num2==num1)
    {printf("答案正确”);num3=1;}
    else {printf("答案错误");num3=0;}
    }
    int C()
    {double m,r,num1,num2,num3;int n;
    srand((unsigned)time(NULL));
    m=rand()/(double)(RAND_MAX);
    n=rand()%100+1;
    if (m<n)
    {r=m;m=n;n=r;}
    char op_lib[4]={'+','*','/','-'};
    int rand_oper_idx=rand()%4;
    char cur_oper=op_lib[rand_oper_idx];
    if(cur_oper=='+')num1=m+n;
    else if(cur_oper=='*')num1=m*n;
    else if(cur_oper=='/')num1=m/n;
    else (cur_oper=='-')num1=m-n;
    printf ("%d,%c,%d=
    ",m,cur_oper,n);
    scanf(“%d”,&num2);
    if (num2==num1)
    {printf("答案正确”);num3=1;}
    else {printf("答案错误");num3=0;}
    }
    int main()
    {int num4,num5,num6,num7=0;
    printf("请输入题目数量”);
    scanf("%d",&num4);
    while(num7<num4)
    {srand((unsigned)time(NULL));
    num5=rand()%100+1;
    if (num5<34) num6=A();
    else if(num5>=34&&num5<=67) num6=B();
    else(num5>=68&&num5<=100) num6=C();
    }
    num7++;
    return 0;
    }
    

      

  • 相关阅读:
    Linux tcpdump 命令详解与示例
    Linux 查看磁盘IO并找出占用IO读写很高的进程
    Rsync 服务部署与参数详解
    Linux curl 表单登录或提交与cookie使用
    Linux curl 常用示例
    Linux curl 命令详解
    Linux下使用 github+hexo 搭建个人博客07-next主题接入搜索和站点管理
    Linux下使用 github+hexo 搭建个人博客06-next主题接入数据统计
    Linux下使用 github+hexo 搭建个人博客05-next主题接入评论系统
    Linux下使用 github+hexo 搭建个人博客04-next主题优化
  • 原文地址:https://www.cnblogs.com/gyy0/p/10246442.html
Copyright © 2011-2022 走看看