自动生成四则运算题目
2016-03-16 09:09
148 查看
#include<stdio.h> #include<Windows.h> #include<time.h> void main() { int a, b, c, d,i,m,n; float p, q; srand(unsigned( time(NULL)));//这个函数调用中使用(time(NULL));这个函数调用中使用time(NULL)函数返回值(当前时间)作实参。初始化随机数发生器。 for (i = 0; i < 30; i++) { a = rand() % 100;//rand()返回一个随机数,但是每次调用时,随机数发生器返回的随机数序列都是一样的,所以,用当前时间(time(NULL))返回值作为种子对随机数发生器进行初始化,由于每次当前时间不一样,所以随机数发生器产生的随机数序列不一样,即rand()函数调用的返回值不一样,就达到了得真随机数而不是伪随机数的目的。 b = rand() % 100; c = rand() % 5; switch (c) { case 0: printf("%d + %d =\n", a, b); break; case 1:if (a < b) { d = a; a = b; b = d; } printf("%d - %d =\n", a, b); break; case 2:printf("%d * %d =\n", a, b); break; case 3: while (b == 0) { b = rand() % 100; } printf("%d / %d =\n", a, b); break; case 4: a = rand() % 100; b = rand() % 100; m = rand() % 100; n = rand() % 100; c = rand() %4 ; while (b == 0) { b = rand() % 100; } while (n == 0) { n = rand() % 100; } if (a > b) { d = a; a = b; b = d; } if (m > n) { d = m; m = n; n = d; } switch (c) { case 0:printf("%d/%d + %d/%d =\n", a, b, m, n); break; case 1: p = (float)a / (float)b; q = (float)m / (float)n; if (p < q) { d = a; a = m; m = d; d = b; b = n; n = d; } printf("%d/%d - %d/%d =\n", a,b,m,n); break; case 2:printf("%d/%d * %d/%d =\n", a, b, m, n); break; case 3: a = rand() % 100; b = rand() % 100; m = rand() % 100; n = rand() % 100; c = rand() % 4; while (m == 0) { m = rand() % 100; } printf("%d/%d / %d/%d =\n", a, b, m, n); break; } } } system("pause"); }
主要功能:
能自动生成小学四则运算题目(注意是给小学生用的,不能出现负数)
除了整数外,还要支持真分数的四则运算
题目分析设计思想:1.由于是给小学生用的,所以要求运算的时候不能有负数,因此,减法运算时,前面的数一定要大于后面的数。
2.除法运算的规则,分母不能为0。
3.题目要求支持真分数,由真分数的概念知,分子不能大于分母的数。
4.因为题目要求是随机30道题,所以运用随机生成数函数srand()和rand()。
程序运行截图:
总结:
本次作业我采用C语言来完成的,虽然途中有所困难,但还是通过看书以及跟同学交流解决了问题成功运行了程序。还需要看书、学习。
相关文章推荐
- linux --> 进程和线程
- android gravity和layout_gravity区别
- 学习IIS服务器勿使用CGI程式
- 36个Android开发常用代码片段
- 函数
- php生成csv文件提供给用户下载
- 进程与线程栈大小的调整(vsz 虚拟内存大小)
- 同义词辨析1(create a website?)
- WCF终结点地址和监听地址没这么简单
- jquery+css实现鼠标滑动彩虹圈特效
- sap 实战 table
- com.showself.utils.DLog
- 【leetcode】第14题:Longest Common Prefix
- 月薪3万的程序员都避开了哪些坑
- Eclipse快捷键
- C#-using用法详解
- js年月日三级联动
- 【代码笔记】提醒时间的选择
- 按天统计HealthKit数据
- Core Data使用