linuxC 语言编写一个100以内加减乘除的出题库 并自动判断成绩,要求乘法 除法要完全整除

时间: 2024-03-12 09:49:33 浏览: 18
好的,这个需求可以分为两个部分来实现: 1. 生成100以内加减乘除的出题库 可以编写一个函数,使用随机数生成器生成两个随机数,再根据随机数生成一个运算符,最后将题目以字符串的形式输出。例如: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> char* generate_question() { char* question = (char*) malloc(sizeof(char) * 10); int a = rand() % 100 + 1; int b = rand() % 100 + 1; int op = rand() % 4; // 0: +, 1: -, 2: *, 3: / switch (op) { case 0: sprintf(question, "%d + %d", a, b); break; case 1: sprintf(question, "%d - %d", a, b); break; case 2: sprintf(question, "%d * %d", a, b); break; case 3: while (a % b != 0) { a = rand() % 100 + 1; b = rand() % 100 + 1; } sprintf(question, "%d / %d", a, b); break; } return question; } ``` 注意,除法题目需要使用循环确保除数能够整除被除数。 2. 自动判断成绩 可以编写一个主函数,循环输出题目并等待用户输入答案,然后判断答案是否正确,最后给出总得分。例如: ```c int main() { srand(time(NULL)); // 初始化随机数生成器 int score = 0; for (int i = 0; i < 10; i++) { char* question = generate_question(); printf("Question %d: %s = ", i + 1, question); int answer; scanf("%d", &answer); int a, b; sscanf(question, "%d %*c %*c %d", &a, &b); switch (question[strlen(question) - 1]) { case '+': if (answer == a + b) score++; break; case '-': if (answer == a - b) score++; break; case '*': if (answer == a * b) score++; break; case '/': if (answer == a / b) score++; break; } free(question); } printf("Your score is %d/10.\n", score); return 0; } ``` 这个主函数使用了 `generate_question` 函数生成题目,并且使用 `scanf` 函数等待用户输入答案。然后根据题目中的运算符判断答案是否正确,最后给出总得分。 完整代码如下:

相关推荐

最新推荐

recommend-type

怎样在linux下编写C程序并编译执行

一、Hello, world!在linux下输入:(以hello.c为例)首先选中文件要保存的路径(如:cd work)vi hello.c(要编辑的文件名)输入程序:# includeint main(void){p...
recommend-type

分享9个实战及面试常用Linux Shell脚本编写

主要介绍了9个实战及面试常用Shell脚本编写,非常不错,具有一定的收藏价值,需要的朋友可以参考下
recommend-type

每天学一个 Linux 命令之more命令

more命令,功能类似 cat ,more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能
recommend-type

操作系统实验一熟悉实验环境——Linux

1.熟悉linux操作系统的基本安装和配置;了解linux操作系统的启动过程和桌面环境;掌握VirtualBox虚拟机的使用 2.了解Linux的命令格式,掌握Linux中的操作命令;学会使用各种Shell命令操作Linux;学会如何得到帮助...
recommend-type

Linux中使用crontab自动清除日志

Linux中使用crontab自动清除日志,Linux中使用crontab自动清除日志,Linux中使用crontab自动清除日志
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】MATLAB用遗传算法改进粒子群GA-PSO算法

![MATLAB智能算法合集](https://static.fuxi.netease.com/fuxi-official/web/20221101/83f465753fd49c41536a5640367d4340.jpg) # 2.1 遗传算法的原理和实现 遗传算法(GA)是一种受生物进化过程启发的优化算法。它通过模拟自然选择和遗传机制来搜索最优解。 **2.1.1 遗传算法的编码和解码** 编码是将问题空间中的解表示为二进制字符串或其他数据结构的过程。解码是将编码的解转换为问题空间中的实际解的过程。常见的编码方法包括二进制编码、实数编码和树形编码。 **2.1.2 遗传算法的交叉和
recommend-type

openstack的20种接口有哪些

以下是OpenStack的20种API接口: 1. Identity (Keystone) API 2. Compute (Nova) API 3. Networking (Neutron) API 4. Block Storage (Cinder) API 5. Object Storage (Swift) API 6. Image (Glance) API 7. Telemetry (Ceilometer) API 8. Orchestration (Heat) API 9. Database (Trove) API 10. Bare Metal (Ironic) API 11. DNS
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。