#include<iostream> using namespace std; #define random()(rand()%100) class shuzi //shuzi类的功能是产生随机数 { public: int display() //调用display产生随机整数 { int num=random(); cout<<num<<" "; return 0; } int display1() //调用display1产生随机真分数 { int num1=random(); int num2=random(); for(;;) { if((num1 <= num2) && (num2 != 0)) //判断分子小于分母,且分母不为0 { cout<<num1<<"/"<<num2<<" "; break; } if((num2 <= num1) && (num1 != 0)) { cout<<num2<<"/"<<num1<<" "; break; } } return 0; } }; void main() { char add='+'; char sec='-'; char min='*'; char div='/'; int i; shuzi x; for( i=0;i<10;i++) //产生10个纯整数四则运算 { cout<<"("<<i+1<<") "; x.display(); cout<<add; x.display(); cout<<sec; x.display(); cout<<min; x.display(); cout<<div; for(;;) //判断除数是否为0 { int t=random(); if(t != 0) { cout<<t; break; } } cout<<"="<<endl; } for(i=0;i<10;i++) //产生10个纯分数四则运算 { cout<<"("<<i+11<<")"; x.display1(); cout<<add<<" "; x.display1(); cout<<sec<<" "; x.display1(); cout<<min<<" "; x.display1(); cout<<div<<" "; x.display1(); cout<<"="<<endl; } for(i=0;i<10;i++) //输出10个整数和分数混合的四则运算 { cout<<"("<<i+21<<")"; x.display(); cout<<add<<" "; x.display1(); cout<<sec<<" "; x.display(); cout<<min<<" "; x.display1(); cout<<div<<" "; x.display1(); cout<<"="<<endl; } }
这是我编写的30道四则运算题,一开始很懵,后来按照老师所教的拆分法,理清思路,最后做出来了。但是运算符的顺序是固定的+ - * /不知道该怎么改