zoukankan      html  css  js  c++  java
  • 程序实现自动生成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 }
  • 相关阅读:
    数据库中的索引结构是什么?
    什么情况下适合建立索引?
    python requests https 访问出错
    Centos下 自动化配置SSH免密码登陆
    expect 批量增加用户及配置密码
    Shell 处理文件名中包含空格的文件
    Linux sort 命令
    ictclas bug修复
    [转]hadoop2.x常用端口
    在服务器上运行Jar包
  • 原文地址:https://www.cnblogs.com/linumy/p/5244363.html
Copyright © 2011-2022 走看看