小学生300道练习题程序及问题
題目要求:自動生成一百以內數的四則運算;同時也支持真分數的四則運算;
根據題目要求,決定使用隨機數函數srand(),rand()函數來產生操作數,rand()%100即可產生一百以內的數。rand()%4來產生0~3四個數來選擇四則運算。
#include<stdio.h>
#include<time.h>
#include<Windows.h>
#include<stdlib.h>
void main()
{
?? int a, b,c,d,i,op,x;
?? srand(unsigned(time(NULL)));
???printf("請選擇類型:\n1 整數四則運算;\n2 真分數四則運算;\n");
?? scanf("%d", &x);
? switch (x)
? {
?? case 1:
?? {
?? for (i = 0; i < 30; i++)
???{
????? a = rand() % 100;
????? b = rand() % 100;
????? op = rand() % 4;
????? if (op == 0)
?????? printf("%d + %d =\n", a, b);
????? else if (op == 1 && a>b)
?????? printf("%d - %d =\n", a, b);
????? else if (op == 2)
?????? printf("%d * %d =\n", a, b);
????? else if (op == 3 && b != 0)
?????? printf("%d ÷ %d =\n", a, b);
???? }
??break;
?? }
? case 2:
? {
????? for (i = 0; i < 30; i++)
???{
????? a = rand() % 100;
????? b = rand() % 100;
????? while (b==0)
?????? b = rand() % 100;
????? c = rand() % 100;
????? while (c==0)
?????? c = rand() % 100;
????? d = rand() % 100;
????? while (d==0)
?????? d = rand() % 100;
????? if (a < b && c < d)
????{
?????? op = rand() % 4;
?????? if (op == 0)
?????? printf("%d/%d + %d/%d =\n", a, b, c, d);
?????? else if (op == 1 && (a / b) >= (c / d))
?????? printf("%d/%d - %d/%d =\n", a, b, c, d);
?????? else if (op == 2)
?????? printf("%d/%d * %d/%d =\n", a, b, c, d);
?????else if (op == 3)
???????????? printf("%d/%d ÷ %d/%d =\n", a, b, c, d);
????}
????? else i--;
???? }
???? break;
??? }
?}
?system("pause");
}
程序運行結果:
?
程序基本滿足了題目要求,可以根據需要選擇整數運算或者真分數運算。
但是因為學術不精,程序不夠簡潔。耗時半天。
編程期間遇到黑框閃退問題,詢問同學,網上查找通過添加頭函數#include<windows.h>,以及凍結屏幕system("pause")問題解決。真分數運算過程中if對于兩個操作數的判斷時,不滿足運算條件時計數變量i也增加,是程序運行結果出題的數目不夠要求。通過else語句,不滿足條件時執行i--,問題解決。程序沒有考慮分數運算時分數可以約分的情況,為用戶的計算增加了工作量,也是對用戶計算能力的訓練吧!
希望經過編程訓練,能力可以有所提高。
轉載于:https://www.cnblogs.com/cuilulu/p/5268370.html
總結
以上是生活随笔為你收集整理的小学生300道练习题程序及问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《专门替中国人写的英语语法》(四)
- 下一篇: Oracle Segments可以跨多个