首页 > 其他分享 >四则运算生成器

四则运算生成器

时间:2024-04-09 21:23:45浏览次数:24  
标签:int 四则运算 生成器 generateRandomNumber num printf 减法 else

用C语言写一个自动生成四则运算练习题的小程序,要求输入年级和题目数量,程序根据年级输出规定数量的题目,具体要求如下:

·一年级运算数为20以内,只生成加法或减法运算式,结果小于20

·二年级运算数为50以内,生成加法和减法混合运算式,结果小于50

·三年级运算数为1000以内,生成加法、减法和乘法混合运算式

·四到六年级运算数为非负整数,生成至少带有三个运算符(从加减乘除四个符号中任选三个)和括号的混合运算式

·结果不能为负数

代码:

include <stdio.h>

include <stdlib.h>

include <time.h>

// 生成随机数
int generateRandomNumber(int max) {
return rand() % max + 1;
}

// 生成一年级题目:加法和减法,结果小于20
void generateFirstGradeQuestions(int num) {
for (int i = 0; i < num; i++) {
int a = generateRandomNumber(20);
int b = generateRandomNumber(20);
int op = rand() % 2; // 0为加法,1为减法
if (op == 0) {
printf("%d + %d = \n", a, b);
} else {
if (a < b) {
int temp = a;
a = b;
b = temp;
}
printf("%d - %d = \n", a, b);
}
}
}

// 生成二年级题目:加法、减法混合,结果小于50
void generateSecondGradeQuestions(int num) {
for (int i = 0; i < num; i++) {
int a = generateRandomNumber(50);
int b = generateRandomNumber(50);
int op = rand() % 2; // 0为加法,1为减法
if (op == 0) {
printf("%d + %d = \n", a, b);
} else {
if (a < b) {
int temp = a;
a = b;
b = temp;
}
printf("%d - %d = \n", a, b);
}
}
}

// 生成三年级题目:加法、减法、乘法混合,结果小于1000
void generateThirdGradeQuestions(int num) {
for (int i = 0; i < num; i++) {
int a = generateRandomNumber(1000);
int b = generateRandomNumber(1000);
int op = rand() % 3; // 0为加法,1为减法,2为乘法
if (op == 0) {
printf("%d + %d = \n", a, b);
} else if (op == 1) {
if (a < b) {
int temp = a;
a = b;
b = temp;
}
printf("%d - %d = \n", a, b);
} else {
printf("%d * %d = \n", a, b);
}
}
}

// 生成四到六年级题目:带有括号的混合运算式
void generateFourthToSixthGradeQuestions(int num) {
for (int i = 0; i < num; i++) {
int a = generateRandomNumber(100);
int b = generateRandomNumber(100);
int c = generateRandomNumber(100);
int op1 = rand() % 4; // 0为加法,1为减法,2为乘法,3为除法
int op2 = rand() % 4;
int op3 = rand() % 4;
printf("(%d ", a);
if (op1 == 0) {
printf("+ ");
} else if (op1 == 1) {
printf("- ");
} else if (op1 == 2) {
printf("* ");
} else {
printf("/ ");
}
printf("%d) ", b);

    if (op2 == 0) {
        printf("+ ");
    } else if (op2 == 1) {
        printf("- ");
    } else if (op2 == 2) {
        printf("* ");
    } else {
        printf("/ ");
    }
    printf("%d ", c);
    printf(" = \n");
}

}

int main() {
int grade, num;

printf("请输入年级(1-6):");
scanf("%d", &grade);
printf("请输入题目数量:");
scanf("%d", &num);

srand(time(NULL)); // 用于初始化随机数种子

switch (grade) {
    case 1:
        generateFirstGradeQuestions(num);
        break;
    case 2:
        generateSecondGradeQuestions(num);
        break;
    case 3:
        generateThirdGradeQuestions(num);
        break;
    case 4:
    case 5:
    case 6:
        generateFourthToSixthGradeQuestions(num);
        break;
    default:
        printf("请输入1到6之间的整数!\n");
        break;
}

return 0;

}

主要采取随机数生成函数以保证生成随机数来实现四则运算的生成,输入1-6的整数,switch函数进行分支选择不同函数来满足不同要求。

标签:int,四则运算,生成器,generateRandomNumber,num,printf,减法,else
From: https://www.cnblogs.com/jiahaochen-ttoen/p/18124840

相关文章

  • 懒农可视化代码生成器
              我开发了一款为只懂得一般电脑操作的人设计的代码生成器懒农,经过前一段时间推广,根据一些用户意见对功能做了修改,目前已更新发布新版,欢迎各位试用反馈。......
  • 永不生锈的螺丝钉!一款简洁好用的数据库表结构文档生成器
    大家好,我是Java陈序员。在企业级开发中,我们经常会有编写数据库表结构文档的需求,常常需要手写维护文档,很是繁琐。今天,给大家介绍一款数据库表结构文档生成工具。关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。项目介绍screw......
  • C#词法分析自动生成器
    C#词法分析自动生成器前言在做编译原理实验时,要求使用自动生成器生成词法分析器,老师推荐的是用flex,但用flex只会生成C代码,自己项目用的又是C#,本来想使用C代码直接生成dll库并用C#调用,但非常麻烦。干脆找了个能生成C#代码的生成器。配置相关的生成器很多,但我能找到的且能成功......
  • Python面试必备一之迭代器、生成器、浅拷贝、深拷贝
    本文首发于公众号:Hunter后端原文链接:Python面试必备一之迭代器、生成器、浅拷贝、深拷贝这一篇笔记主要介绍Python面试过程中常被问到的一些问题,比如:Python中的迭代器和生成器是什么,有什么作用Python中不可变类型有哪些在Python函数中,传递参数传递的是什么,值还是引......
  • pdmaner-代码生成器的使用
    一、什么是pdmanerPDManer是一款开源免费的数据库模型建模工具,它以其用户友好的界面和简单的操作流程而受到用户的欢迎。以下是一些关于PDManer的特点:多平台支持:支持Windows、Mac和Linux等多种操作系统,甚至包括国产操作系统。高颜值界面:界面设计简洁美观,使得用户上手更为容易......
  • AI绘画自动生成器有哪些?
    AI绘画自动生成器:探索创意与技术的完美融合导言:随着人工智能(AI)的快速发展,它在各个领域都展现出了惊人的应用潜力。其中,AI绘画自动生成器成为了艺术创作领域的一大亮点。这些自动生成器能够通过学习大量的图像数据和算法模型,生成出栩栩如生的艺术作品。本文将介绍几种目前......
  • 简易自增id生成器
    importjava.util.concurrent.*;importjava.util.concurrent.atomic.AtomicLong;importjava.util.function.Function;publicclassSeqManager{privatefinalSeqseq;privatefinalExecutorServicee=newThreadPoolExecutor(1,1,0L,Time......
  • IDEA 中的代码生成器(CodeGenerator)的使用
    代码生成器的使用在IDEA中,为了方便简化代码编写,可以引入代码生成器CodeGenerator类。这个类可以根据数据库中存在的表,自动在IDEA中生成Controller类、Entity类、Mapper类、Sevice类、ServiceImpl扩展类、以及xml文件。使用方法:在项目目录下新建一个common包,直接ctrl......
  • AI绘画生成器推荐 选网页还是插件
    初入AI绘画,最难的就是选择工具。好的绘画工具不但能提升工作效率,还能让学习过程更方便,那本期我们就推荐一些AI绘画生成器,这其中包含网页版和插件版,大家可以自行挑选使用~StartAI作为PS插件拓展的AI绘画生成器,StartAI提供了多种画风、多种选择的绘画模型以供使用。目前这款插......
  • Cron在线表达式生成器
     原文连接 https://cron.ciding.cc/ 每秒允许的通配符[,-*/]  周期从  到  秒  周期从  秒开始,每  秒执行一次 指定  表达式表达式字段  秒分钟小时日月星期年Cron表达式  反解析最近5次运行时间......