自动生成四则运算题目
本周的作业的基本要求:
编写一个自动生成四则运算题目的程序,除了支持整数以外,还要支持真分数的四则运算。
主要功能 :
我设计的四则运算题目的程序可以生成使用者想要做的题目数量的题目,程序会自动判断使用者的答案是否正确,若正确进行下一道题,若错误使用者由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 }