自动生成四则运算题目

本周的作业的基本要求:

  编写一个自动生成四则运算题目的程序,除了支持整数以外,还要支持真分数的四则运算。

主要功能 :

  我设计的四则运算题目的程序可以生成使用者想要做的题目数量的题目,程序会自动判断使用者的答案是否正确,若正确进行下一道题,若错误使用者由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 }

题目演示:

posted @ 2016-03-15 20:54  张富彬  阅读(413)  评论(0编辑  收藏  举报