• 第一次作业


    具体要求如下:

    • 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
    • 除了整数外,还要支持真分数的四则运算

    方案的实现:

    1.自动生成小学四则运算题目,首先需要生成两个随机数,这里用到了rand(),为了保证随机数在100以内,并且避免为0,因此令rand()%100+1;

    2.用switch case语句随机选择加减乘除操作,调用相应的子函数;

    3.加法运算分两种情况:一.两个加数均为整数。a>b时,直接输出a+b=?。二.有真分数的情况。当a<b且e<f时,则输出a/b + e/f =?;

    4.减法运算分四种情况:一.被减数、减数均为整数且a>b时,直接输出a-b=?。二.有真分数且a<b e<f的情况,则输出a/b - e/f=?;三.a<b且e>f时,输出b-a=?;四.a/b<e/f时,则输出e/f-a/b=?;

    5.乘法运算分两种情况:一.两个乘数均为整数。a>b时,直接输出a*b=?。二.有真分数的情况。当a<b且e<f时,则输出a/b * e/f =?;

    6.除法运算分两种情况:一.被除数、除数均为整数且a>b时,直接输出a/b=?。二.有真分数的情况。当a<b且e<f时,则输出a/b / e/f =?;

    编程中遇到的问题:把srand()函数放在for循环里边,导致所有出现的随机数都相等,经检查修正后数据符合要求。

    程序清单:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>

    void Add(int a,int b,int e,int f){
    if (a>b)
    printf("%d + %d=? ", a, b);
    if (a < b&&e<f)
    printf("%d/%d + %d/%d=? ", a, b, e, f);
    }

    void Jian(int a,int b,int e,int f){
    if (a>b)
    printf("%d - %d=? ", a, b);
    if (a < b){
    if (e>f)
    printf("%d - %d=? ", b, a);
    else
    {
    if (float(a) / float(b) > float(e) / float(f))
    printf("%d/%d - %d/%d=? ", a, b, e, f);
    else
    printf("%d/%d - %d/%d=? ", e, f, a, b);
    }
    }
    }

    void Cheng(int a,int b,int e,int f){
    if (a>b)
    printf("%d * %d=? ", a, b);
    if (a < b&&e<f)
    printf("%d/%d * %d/%d =? ", a, b, e, f);
    }

    void Chu(int a,int b,int e,int f){
    if (a>b)
    printf("%d / %d=? ", a, b);
    else{
    if (e>f)
    printf("%d / %d=? ", b, a);
    else
    printf("%d/%d / %d/%d=? ", a, b, e, f);
    }
    }

    int main(){
    int a, b,c,d,e,f;
    printf("请输入做题数目: ");
    scanf("%d", &d);
    srand((unsigned)time(NULL));
    for (int i = 0; i < d; i++){
    a = rand() % 100+1;
    b = rand() % 100+1;
    c = rand() % 4;
    e = rand() % 100 + 1;
    f = rand() % 100 + 1;
    switch (c){
    case 0:
    Add(a, b,e,f);
    break;
    case 1:
    Jian(a, b,e,f);
    break;
    case 2:
    Cheng(a, b,e,f);
    break;
    case 3:
    Chu(a, b,e,f);
    break;
    }
    }
    printf("输入任意数字结束! ");
    scanf("%d", &d);
    return 0;
    }

  • 相关阅读:
    洛谷7月月赛 B 题解
    undone
    树剖学习
    关于两周后noip---小计划
    线段树技巧练习--GSS1
    链式前向星存图及注意要点
    错题集合
    树上差分问题
    2020暑假学习内容整理及后续计划
    安利大佬博客
  • 原文地址:https://www.cnblogs.com/liumengdi/p/5266625.html
Copyright © 2020-2023  润新知