四则运算C语言程序
1 #include<stdio.h> 2 #include<Windows.h> 3 #include<time.h> 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语言编程的熟练度,还学习到了随机生成数函数。期待下次的作业练习
恩,就是这样!