• 四则运算


    |**博客班级**|***ahpu软件工程***|
    |:--:|:--:|
    |作业要求| 实现四则运算 |
    | 作业目标 | |
    | 学号 | 3160303242 |

    一。题目要求:

    写一个能自动生成小学四则运算题目的程序,然后在此基础上扩展:

    1)除了整数以外,还要支持真分数的四则运算,例如:1/6+1/8=7/24

    2)程序要求能处理用户的输入,判断对错,累积分数

    3)程序支持可以由用户自行选择加、减、乘、除运算

    4)使用-n参数控制生成题目的个数,例如Myapp.exe -n 10,将生成10个题目

    二、代码如下:
    include <stdio.h>
    include <stdlib.h>
    include <time.h>
    include <math.h>

    int gcd(int a,int b)
    {
    int t;
    if (a>b){
    t=a;
    a=b;
    b=t;
    }
    while (a!=0){
    t=a;
    a=b%a;
    b=t;
    }
    return b;
    }

    int lcm(int a,int b, int g)
    {
    return a*b/g;
    }

    int main()
    {
    while (1){
    int i=0;
    int n=0;
    int x=0;
    int type;
    int t;
    int count=0;
    char flag;
    int left, right;
    float result;
    srand((unsigned)time(NULL));//srand(seed)的随机数种子不同,rand()的随机数值就不同
    printf("请输入要出的题目数量 ");
    scanf("%d",&n);
    while(x<n)
    {
    int f;
    printf("请选择:1、整数 2、真分数 ");
    x++;
    scanf("%d",&f);
    if (f==1){//整数四则运算
    printf("请选择:1、加法 2、减法 3、乘法 4、除法 ");
    scanf("%d",&type);
    type--;
    left = rand() % 100;
    right = rand() % 100;
    int s=0;
    switch(type)
    {
    case 0:
    printf("%d + %d = ", left, right);
    s = left + right;
    break;
    case 1:
    printf("%d - %d = ", left, right);
    s =left - right;
    break;
    case 2:
    printf("%d * %d = ", left, right);
    s = left * right;
    break;
    case 3:
    printf("%d / %d = ", left, right);
    s = left / right;
    break;
    }
    printf("请输入答案:");
    int temp;
    scanf("%d",&temp);
    if (temp == s){
    printf("答案正确! ");
    count++;
    }
    else{
    printf("答案错误!!正确答案为:%d ",s);
    }
    }
    else{//真分数的四则运算
    printf("请选择:1、加法 2、减法 3、乘法 4、除法 ");
    scanf("%d",&type);
    type--;
    int g,l,temp_g;
    int a1,a2,a3,a4;
    a1=rand()%10+1;
    a2=a1+rand()%10+1;//保证分母大于分子
    a3=rand()%10+1;
    a4=a3+rand()%10+1;//保证分母大于分子
    int s1,s2;//保存结果的分子和分母
    switch(type)
    {
    case 0:
    printf("%d/%d + %d/%d = ", a1, a2, a3, a4);
    g = gcd(a2,a4);//保存分母的最小公倍数
    l = lcm(a2,a4,g);//求分子分母的最大公约数
    a1 = l / a2 * a1;
    a3 = l / a4 * a3;
    a2 = a4 = l;
    s2 = l;
    s1 = a1 + a3;
    temp_g = gcd(s1,s2);
    s1 /= temp_g;//求分子分母的最简整数比
    s2 /= temp_g;//求分子分母的最简整数比
    break;
    case 1:
    printf("%d/%d - %d/%d = ", a1, a2, a3, a4);
    g = gcd(a2,a4);
    l = lcm(a2,a4,g);
    a1 = l / a2 * a1;
    a3 = l / a4 * a3;
    a2 = a4 = l;
    s2 = l;
    s1 = a1 - a3;
    int temp_g = abs(gcd(s1,s2));//保证结果的分子和分母的最大公因数为正
    s1 /= temp_g;
    s2 /= temp_g;
    break;
    case 2:
    printf("%d/%d * %d/%d = ", a1, a2, a3, a4);
    s1 = a1 * a3;
    s2 = a2 * a4;
    temp_g = gcd(s1,s2);
    s1 /= temp_g;
    s2 /= temp_g;
    break;
    case 3:
    printf("%d/%d / %d/%d = ", a1, a2, a3, a4);
    s1 = a1 * a4;
    s2 = a2 * a3;
    temp_g = gcd(s1,s2);
    s1 /= temp_g;
    s2 /= temp_g;
    break;
    }
    printf("请输入答案:");
    int temp_s1,temp_s2;
    scanf("%d/%d",&temp_s1,&temp_s2);
    if (temp_s1 == s1 && temp_s2 == s2){
    printf("答案正确! ");
    count++;
    }
    else{
    printf("答案错误!!答案为:%d/%d ",s1,s2);
    }
    }

    }
    printf("一共对了%d题! ",count);
    printf(" ");
    printf("是否继续?(Y/N):");
    char flag1;
    getchar();
    flag1 = getchar();
    if (flag1 == 'n' || flag1 == 'N')
    break;
    }

    }


    ![](https://img2020.cnblogs.com/blog/1998991/202011/1998991-20201107214753205-684088573.png)
    三.个人小结
    | psp | 任务内容 | 计划完成的时间(min) | 实际完成时间(min) |
    ---|---|:--:|:---:|
    | Planning | 计划 | 30 | 30 |
    | Estimate | 估计这个任务需要多少时间 | 50 | 60 |
    | Development | 开发 | 20 | 20|
    | Design | 设计 | 15 | 15|
    | Test | 测试 | 6 | 6 |
    |Postmortem & Process Improvement Plan| 事后总结| 5 |5|

  • 相关阅读:
    spring-boot集成8:集成shiro,jwt
    spring-boot集成6:集成redis实现字典缓存功能
    公告:《那些年,追寻Jmeter的足迹》上线
    那些年,追寻JMeter的足迹,免费送……
    Jmeter系列培训(1)--开山篇
    FlytestingToolkit工具派送,懒人的测试思考
    飞测历史分享,目录整理篇
    jenkins系列(11)-自动打tag升级篇
    大数据测试笔记(1)-测试的3条建议
    聊聊我们的线上巡检(2)
  • 原文地址:https://www.cnblogs.com/haodeyou/p/13942896.html
Copyright © 2020-2023  润新知