本周的作業的基本要求:
編寫一個自動生成四則運算題目的程式,除了支援整數以外,還要支援真分數的四則運算。
主要功能 :
我設計的四則運算題目的程式可以生成使用者想要做的題目數量的題目,程式會自動判斷使用者的答案是否正确,若正确進行下一道題,若錯誤使用者由3次重新回答的機會。本程式是在選擇c語言的環境下編寫的,需要在頭檔案中加入#include<time.h>的頭檔案,并且需要加入這行代碼,srand((unsigned)time(NULL)); a=rand()%10+1;這是随機産生10以内的随機數。
主要代碼:
1 #include<stdio.h>
2 #include<stdlib.h>
3 int main()
4 {
5 int a,b,d,e,n,x,X,i,s,o,p,ans,res,op,times,right;
6 char c;
7 printf("\n---四則運算練習---\n");
8 printf("1.開始\n");
9 printf("2.結束\n");
10 START:while(1)
11 {
12 srand((unsigned)time(NULL));
13 printf("請輸入數字選擇操作:");
14 scanf("%d",&op);
15 switch(op)
16 {
17 case 1: printf("請輸入題數:");
18 x=0;
19 scanf("%d",&X);
20 for(i=1;i<=X;i++)
21 {
22 a=rand()%10+1;
23 b=rand()%10+1;
24 d=rand()%10+1;
25 e=rand()%10+1;
26 n=rand()%4;
27
28 if(n==0) {c='+';}
29 if(n==1) {c='-';}
30 if(n==2) {c='*';}
31 if(n==3) {c='/';}
32
33 p=rand()%2;
34 if(p==0){printf("%d%c%d=",a,c,b);}
35 if(p==1){if(a>b&&d>e)
36 {
37 printf("%d/%d%c%d/%d=",b,a,c,e,d);
38 }
39 else{
40 printf("%d/%d%c%d/%d=",a,b,c,d,e);
41 }
42 }
43 o=n;
44 switch(o)
45 {
46 case 0:right=a+b;break;
47 case 1:right=a-b;break;
48 case 2:right=a*b;break;
49 case 3:right=a/b;break;
50 case 4:right=b/a+e/d;break;
51 case 5:right=b/a-e/d;break;
52 case 6:right=b/a*e/d;break;
53 case 7:right=b/a/e/d;break;
54 case 8:right=a/b+d/e;break;
55 case 9:right=a/b-d/e;break;
56 case 10:right=a/b*d/e;break;
57 case 11:right=a/b/d/e;break;
58 }
59 scanf("%d",&ans);
60 if(ans==right)
61 {
62 printf("Very Good!\n");
63 x++;
64 }
65 else
66 {
67 s=0;
68 times=1;
69 while(times<=3&&s!=1)
70 {
71 printf("please try again !\n");
72 if(p=0){printf("%d%c%d=",a,c,b);}
73 if(p=1){if(a>b&&d>e)
74 {
75 printf("%d/%d%c%d/%d=",b,a,c,e,d);
76 }
77 else{
78 printf("%d/%d%c%d/%d=",a,b,c,d,e);
79 }
80 }
81 scanf("%d",&ans);
82 if(ans==right)
83 {
84 printf("Very Good!\n");
85 s=1;
86 x++;
87 }
88 else
89 {
90 times++;
91 }
92 }
93 }
94 }
95 break;
96 case 2:
97 goto END;
98 END:printf("Welcome to use next time.Bye Bye!\n");
99 return 0;
100 break;
101 }
102 }
103 }
題目示範:
