• 程序实现自动生成30道四则运算题目(1)


    课堂上老师要求我们做这样一个题目,题目要求是自动生成30道四则运算题目,要求除整数加减乘除外,还有真分数加减乘除。刚开始听到这个题目一头雾水,有点复杂,但仔细拆分这个题目不难发现,这个题目可以简化成三个小问题,分别是随机数自动生成两个数,自动生成符号,还有输出结果。对于随机数自动生成两个数可以简化为随机数生成整数,随机数生成真分数,生成真分数可以简化到随机数生成分子和分母。对于自动生成符号,也可以简化为随机数生成1,2,3,4,分别代表+,—,*,/,输出结果可以用一个for循化,实现输出30道题,另外还有几个小问题,例如第一是,真分数分子小于分母,第二是,生成的数中有0存在,不能做分母,需要用if语句做判断。

    下面是实现问题的代码:

     1 //课堂练习,题目自动生成四则运算题目,题目要求除整数加减乘除外,还有真分数加减乘除。2016.3.3,杨超群
     2 #include<iostream>
     3 #include<time.h>
     4 using namespace std;
     5 float num[6];
     6 void sort(){                      //生成随机数
     7     num[0]=rand()%100;
     8     num[1]=rand()%100;
     9     num[2]=rand()%100;
    10     num[3]=rand()%100;
    11     for(int i=0;i<4;i++){
    12         for(int j=0;j<i;j++){ 
    13             if(num[i]>num[j])
    14             {
    15                 int temp=0;
    16                 temp=num[i];
    17                 num[i]=num[j];
    18                 num[j]=temp;
    19             }
    20         }
    21     }    
    22 }
    23 void main(){               
    24     srand((unsigned)time(NULL));
    25     for(int i=0;i<30;i++){
    26         sort();
    27         num[4]=rand()%4+1;
    28         num[5]=rand()%2+1;
    29         if(num[4]==1){
    30             if(num[5]==1)
    31                 cout<<num[1]<<"+"<<num[2]<<"="<<endl;
    32             else{
    33                 for(;;){
    34                     if(num[0]==0||num[1]==0)
    35                         sort();
    36                     else{
    37                         cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"+"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
    38                         break;
    39                     }
    40                 }
    41             }
    42         }
    43         else if(num[4]==2){
    44             if(num[5]==1)
    45                 cout<<num[1]<<"-"<<num[2]<<"="<<endl;
    46             else{
    47                 for(;;){
    48                     if(num[0]==0||num[1]==0)
    49                         sort();
    50                     else{
    51                         cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"-"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
    52                         break;
    53                     }
    54                 }
    55             }
    56         }
    57         else if(num[4]==3){
    58             if(num[5]==1)
    59                 cout<<num[1]<<"*"<<num[2]<<"="<<endl;
    60             else{
    61                 for(;;){
    62                     if(num[0]==0||num[1]==0)
    63                         sort();
    64                     else{
    65                         cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"*"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
    66                         break;
    67                     }
    68                 }
    69             }
    70         }
    71         else if(num[4]==4){
    72             if(num[5]==1){
    73                 for(;;){
    74                     if(num[2]==0)
    75                         sort();
    76                     else{
    77                         cout<<num[1]<<"/"<<num[2]<<"="<<endl;
    78                         break;
    79                     }
    80                 }
    81             }
    82             else{
    83                 for(;;){
    84                     if(num[0]==0||num[1]==0||num[3]==0)
    85                         sort();
    86                     else{
    87                         cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"/"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
    88                         break;
    89                     }
    90                 }
    91             }
    92         }
    93     }
    94 }
  • 相关阅读:
    WebView loadData乱码问题
    记录常用工具
    android toolbar学习
    百度地图V5.0地图定位
    JS调JAVA代码
    开始使用Android Stdio
    记录下平时看到的好句子
    开发者必备网址
    android:ellipsize实现跑马灯效果总结
    seo查询命令
  • 原文地址:https://www.cnblogs.com/linumy/p/5244363.html
Copyright © 2020-2023  润新知