zoukankan      html  css  js  c++  java
  • 随机四则运算2程序

    #include<iostream> #define N    100 using namespace std;

    struct fenshu {int x;int y;int z;};

    int gongyueshu(int a,int b) {  int c=a;  while(b!=0)  {   c=a%b;   a=b;   b=c;  }  return a; } int main() {  cout<<"直接生成的是支持假分数、支持正负、支持加减乘除、范围在0-225之间无重复的题"<<endl;  cout<<endl<<"请输入题量及每行题数:"<<endl;  int sum,col,fuhao[N];  cin>>sum>>col;  int a,b,c;

     fenshu fir[N],sec[N];  for(int i=0;i<sum;i++)  {   a=rand()%100;   while(a==0)   {a=rand()%100;}   b=rand()%100;   while(b==0)   {b=rand()%100;}   if(b>a)   {c=a;a=b;b=c;}   c=rand()%256;   int yueshu;   yueshu=gongyueshu(a,b);   fir[i].x=b/yueshu;   fir[i].y=a/yueshu;   if(rand()%2==1)    fir[i].z=c*(-1);   else    fir[i].z=c;   fuhao[i]=rand()%4;  }  for(int i=0;i<sum;i++)  {   a=rand()%100;   while(a==0)   {a=rand()%100;}   b=rand()%100;   while(b==0)   {b=rand()%100;}   if(b>a)   {c=a;a=b;b=c;}   c=rand()%255;   int yueshu;   yueshu=gongyueshu(a,b);   sec[i].x=b/yueshu;   sec[i].y=a/yueshu;   if(rand()%2==1)    sec[i].z=c*(-1);   else    sec[i].z=c;   for(int j=0;j<i;j++)   {    if(fuhao[j]==fuhao[i])    {     if(fir[j].x==sec[j].x&&fir[j].y==sec[j].y&&fir[j].z==sec[j].z)     {i--;continue;}    }   }  }  for(int i=0;i<sum;i++)  {   cout<<"("<<fir[i].z<<" "<<fir[i].x<<"/"<<fir[i].y<<")  ";   if(fuhao[i]==0)    cout<<"+  ";   if(fuhao[i]==1)    cout<<"-  ";   if(fuhao[i]==2)    cout<<"*  ";   if(fuhao[i]==3)    cout<<"/  ";   cout<<"("<<sec[i].z<<" "<<sec[i].x<<"/"<<sec[i].y<<")          ";   if((i+1)%col==0)    cout<<endl;  }

    }

         本来是想写成按照选择的条件生成运算题的,但是越想越晕,感觉有好多参数,写着写着自己就不知道什么参数代表什么了,干脆就全部删了,写了直接生成能控制打印方式,避免重复,支持分数,支持加减乘除且有范围的程序。

         跟当初的设想差距不大。

        (1)创建了struct fenshu来存放分数的整数部分、分子和分母,并控制分母不能为0,还创建函数公约数来将分子分母化成最简形式。

       (2)符号是存在正想数组中的整数,控制输出就可以了。

       (3)避免重复是每当生成一个算式就按照生成的运算符号判断,如果符号一样就判断生成的两个数是不是一样,一样则重新生成。

       (4)生成正负号通过随机生成0和1控制是否乘以-1

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/13

    11:30

    12:00

    0

    30

    设置程序的布局和思路

    3/18

    14:00

    18:00

    10

    240

    重新构思编程修改

    3/19

    17:00

    18:00

    50

    10

    实验截图,上传博客

  • 相关阅读:
    树莓派4 (1)一键配置
    Android编码学习之Fragment
    android编码学习
    自动化中app支持schema跳转
    jenkins持续集成
    测试环境运维文章集锦
    HTML5 data-* 自定义属性
    了解一下JavaScript的未来——ECMAScript5
    ECMAScript5的其它新特性
    ECMAScript5 Array新增方法
  • 原文地址:https://www.cnblogs.com/xiangwo/p/4348502.html
Copyright © 2011-2022 走看看