1 #include2 #include 3 #include 4 void main() 5 { 6 int a, b, c, d,i,m,n; 7 float p, q; 8 srand(unsigned( time(NULL))); 9 for (i = 0; i < 30; i++)10 {11 a = rand() % 100;12 b = rand() % 100;13 c = rand() % 5;14 switch (c)15 {16 case 0: printf("%d + %d =\n", a, b);17 break;18 case 1:if (a < b)19 {20 d = a;21 a = b;22 b = d;23 }24 printf("%d - %d =\n", a, b);25 break;26 case 2:printf("%d * %d =\n", a, b);27 break;28 case 3:29 while (b == 0)30 {31 b = rand() % 100;32 }33 printf("%d / %d =\n", a, b);34 break;35 case 4:36 a = rand() % 100;37 b = rand() % 100;38 m = rand() % 100;39 n = rand() % 100;40 c = rand() %4 ;41 while (b == 0)42 {43 b = rand() % 100;44 }45 while (n == 0)46 {47 n = rand() % 100;48 }49 if (a > b)50 {51 d = a;52 a = b;53 b = d;54 }55 if (m > n)56 {57 d = m;58 m = n;59 n = d;60 }61 switch (c)62 {63 case 0:printf("%d/%d + %d/%d =\n", a, b, m, n);64 break;65 case 1:66 p = (float)a / (float)b;67 q = (float)m / (float)n;68 if (p < q)69 {70 d = a;71 a = m;72 m = d;73 d = b;74 b = n;75 n = d;76 }77 printf("%d/%d - %d/%d =\n", a,b,m,n);78 break;79 case 2:printf("%d/%d * %d/%d =\n", a, b, m, n);80 break;81 case 3:82 a = rand() % 100;83 b = rand() % 100;84 m = rand() % 100;85 n = rand() % 100;86 c = rand() % 4;87 while (m == 0)88 {89 m = rand() % 100;90 }91 printf("%d/%d / %d/%d =\n", a, b, m, n);92 break;93 }94 }95 }96 system("pause");97 }
阿超有个儿子上小学二年级,老师每天让家长给孩子出30道加减法题,虽然不多,但是每天都做也算是个负担,阿超作为一个老牌程序员当然想用计算机来解决这个小问题,目前对于这个问题对于任何语言都不是问题
题目要求:
- 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)
- 除了整数外,还要支持真分数的四则运算
题目分析:1.由于是给小学生用的,所以要求运算的时候不能有负数,因此,减法运算时,前面的数一定要大于后面的数。
2.除法运算的规则,分母不能为0。
3.题目要求支持真分数,由真分数的概念知,分子不能大于分母的数。
4.因为题目要求是随机30道题,所以运用随机生成数函数srand()和rand()。
程序运行截图:
总结:
因为只学过C语言和C++,而C++用的不是太熟,所以就选择的用C语言完成此次作业,编程用了一上午的时间,由于之前不知道随机生成函数和include<time.h>,所以在班级同学的帮助下,顺利的完成了此次作业。
这次作业不仅提高了我运用C语言编程的熟练度,还学习到了随机生成数函数。期待下次的作业练习
恩,就是这样!