生成四則運算題
阿新 • • 發佈:2018-12-11
這是一次隨堂測驗,要求生成一些小學數學題目,為了降低難度,並沒有加入括號
#include<iostream> #include<cstdlib> #include<time.h> using namespace std; char s[4]={'+','-','x','/'};//符號 void make(int n)//運算元個數 { int ans=0,cf=1,f=0,x,y,z; for(int i=1;i<n;++i) { x=rand()%100+1,y=rand()%4; if(s[y]=='x'||s[y]=='/') { if(f==0) { cf*=x; } else if(f==1) { cf*=-x; } else if(f==2) { cf*=x; } else { cf/=x; } } else { if(f==0) { ans+=x; } else if(f==1) { ans-=x; } else if(f==2) { cf*=x; ans+=cf; cf=1; } else { cf/=x; ans+=cf; cf=1; } } cout<<x<<s[y]; f=y; //上一次符號 } z=rand()%100+1; if(f==0) { ans+=z; } else if(f==1) { ans-=z; } else if(f==2) { cf*=z; ans+=cf; cf=1; } else { cf/=z; ans+=cf; cf=1; } cout<<z<<"= "<<ans<<endl; } int main() { for(int i=1;i<=30;++i) make(rand()%7+2); return 0; }