首页 > 编程语言 > 详细

C语言实现300道随机四则运算题

时间:2020-10-11 18:49:06      阅读:73      评论:0      收藏:0      [点我收藏+]

1.要求:

  打印300道含两个运算符数字在100以内的四则运算 ,并显示答案。
2. 分析:对于两个运算符,按照排列与组合,共有4*3=12种,由于乘除与加减的运算优先级不一样,在考虑添加小括号的情况下,应该有12+8=20种可能的组合,同一种运算符自身可以与自身进行一次组合,故有四种,因此总共应有24种组合方式;

3.思想:(1)根据数学排列思想保证含二个运算符四则运算式子的多样性

      (2)调用rand()函数来随机产生0-100的随机数

      (3)采用判断语句排除在进行除法运算时除数为0的情况

      (4)switch语句实现不包括除法运算式子的打印输出

4.代码实现

    #include<stdio.h>                     
    #include <stdlib.h>                      
    #include<time.h>                         
     int main(){                             
        int a,b,c;
        int n;                                
        int i=0;                                                                                                           
        while(i<300){                  
        a=rand()%101;                           
        b=rand()%101;  
        c=rand()%101;  
        n=rand()%24;   
        if(n==5){
                if(b!=0&&c!=0)
                    printf("%d/%d/%d=%f\n",a,b,c,(float)a/(float)b/(float)c);
            }
        if(n==6){
                if(c!=0)
                    printf("%d*%d/%d=%f\n",a,b,c,a*(float)b/(float)c);    
            }
        if(n==7){
                if(b!=0)
                    printf("%d/%d*%d=%f\n",a,b,c,(float)a/(float)b*c);     
            }
        if(n==12){
                if(c!=0)
                    printf("%d+%d/%d=%f\n",a,b,c,a+(float)b/(float)c);     
            }     
        if(n==13){
                if(b!=0)
                    printf("%d/%d+%d=%f\n",a,b,c,(float)a/(float)b+c);     
            }  
        if(n==14){
                if(c!=0)
                    printf("%d-%d/%d=%f\n",a,b,c,a-(float)b/(float)c);     
            }    
        if(n==15){
                if(b!=0)
                    printf("%d/%d-%d=%f\n",a,b,c,(float)(a/b)-c);     
            }  
        if(n==20){
                if(c!=0)
                    printf("(%d+%d)/%d=%f\n",a,b,c,(float)(a+b)/(float)c);  
            }  
        if(n==21){
                if((b+c)!=0)
                    printf("%d/(%d+%d)=%f\n",a,b,c,(float)a/(float)(b+c));     
            }  
        if(n==22){
                if(c!=0)
                    printf("(%d-%d)/%d=%f\n",a,b,c,(float)(a-b)/(float)c);  
            }  
        if(n==23){
                if((b-c)!=0)
                    printf("%d/(%d-%d)=%d\n",a,b,c,(float)a/(float)(b-c));  
            }  
         switch(n){    
            
            case 0:printf("%d+%d+%d=%d\n",a,b,c,a+b+c);
                break;
            case 1:printf("%d-%d-%d=%d\n",a,b,c,a-b-c);
                break;
            case 2:printf("%d+%d-%d=%d\n",a,b,c,a+b-c);
                break;
            case 3:printf("%d-%d+%d=%d\n",a,b,c,a-b+c);
                break;
            case 4:printf("%d*%d*%d=%d\n",a,b,c,a*b*c);
                break;
            //case 5:printf("%d/%d/%d=%f\n",a,b,c,(float)a/(float)b/(float)c);
                //break;
              //case 6:printf("%d*%d/%d=%f\n",a,b,c,(float)(a*b)/c);    
                  //break;
            //case 7:printf("%d/%d*%d=%f\n",a,b,c,(float)(a/b)*c);    
              //    break;
            case 8:printf("%d+%d*%d=%d\n",a,b,c,a+b*c);    
                  break;
            case 9:printf("%d*%d+%d=%d\n",a,b,c,a*b+c);    
                  break;
            case 10:printf("%d-%d*%d=%d\n",a,b,c,a-b*c);    
                  break;
            case 11:printf("%d*%d-%d=%d\n",a,b,c,a*b-c);    
                  break;
            //case 12:printf("%d+%d/%d=%f\n",a,b,c,a+(float)(b/c));    
              //    break;
            //case 13:printf("%d/%d+%d=%f\n",a,b,c,(float)(a/b)+c);    
              //    break;
            //case 14:printf("%d-%d/%d=%f\n",a,b,c,a-(float)b/c);    
            //    break;
            //case 15:printf("%d/%d-%d=%f\n",a,b,c,(float)(a/b)-c);    
              //    break;
            case 16:printf("(%d+%d)*%d=%d\n",a,b,c,(a+b)*c);    
                break;    
            case 17:printf("%d*(%d+%d)=%d\n",a,b,c,a*(b+c));    
                break;
            case 18:printf("(%d-%d)*%d)=%d\n",a,b,c,(a-b)*c);    
                break;
            case 19:printf("%d*(%d-%d)=%d\n",a,b,c,a*(b-c));    
                break;
            //case 20:printf("(%d+%d)/%d)=%f\n",a,b,c,(float)(a+b)/c);    
            //    break;
            //case 21:printf("(%d/(%d+%d))=%f\n",a,b,c,(float)a/(b+c));    
            //    break;
            //case 22:printf("(%d-%d)/%d)=%f\n",a,b,c,(float)(a-b)/c);    
            //    break;
            //case 23:printf("%d/(%d-%d))=%d\n",a,b,c,(float)a/(b-c));    
            //    break;
        
        }     
                ++i;           
            }    
            return 0;                     
    }
     

5.测试

技术分享图片

 

 

  

            

 

C语言实现300道随机四则运算题

原文:https://www.cnblogs.com/eva0527/p/13797056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!