支持真分数的四则运算
可以自定义题目数量
源代码:
1 #include<stdio.h> 2 #include<iostream> 3 #include<time.h> 4 #include<string> 5 using namespace std; 6 int main() 7 {srand( (unsigned)time( NULL ) ); 8 int i,k,p,v,a,b; 9 int *s1,*s2,*s3; 10 char n; 11 string *sc1,*sc2,*f; 12 string g[4]={"+","-","×","÷"}; 13 cout<<"请问您想输出多少题目?"<<endl; 14 cin>>p; 15 cout<<"请输入操作数值最大范围。"<<endl; 16 cin>>v; 17 cout<<"请问是否含有真分数?"<<endl; 18 cin>>n; 19 s1=new int[p+1];//动态数组 20 s2=new int[p+1]; 21 s3=new int[p+1]; 22 sc1=new string[p+1]; 23 sc2=new string[p+1]; 24 f=new string[p]; 25 cout<<"以下为随机选取的题目:"<<endl; 26 if(n==‘N‘) 27 { 28 for(i=1;i<=p;i++) 29 { 30 sc1[i]=g[rand()%4]; 31 sc2[i]=g[rand()%4]; 32 s1[i]=rand()%v+1; 33 s2[i]=rand()%v+1; 34 s3[i]=rand()%v+1;//随机取运算符和数,v为最大操作数。 35 if(i==1) 36 {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"= "; 37 } 38 else 39 { 40 for(k=0;k<i;k++)//避免重复 41 { 42 if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i]) 43 { 44 i--; 45 break; 46 } 47 else//比较到最后一个的时候输出题目 48 { 49 if(k==i-1) 50 {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"= "; 51 } 52 } 53 } 54 } 55 if(i%3==0)//每行输出3题目 56 { 57 cout<<endl; 58 cout<<endl;//每行之间空一行 59 } 60 } 61 } 62 else if(n==‘Y‘) 63 { 64 for(i=1;i<=p;i++) 65 { 66 sc1[i]=g[rand()%4]; 67 sc2[i]=g[rand()%4]; 68 s1[i]=rand()%v+1; 69 s2[i]=rand()%v+1; 70 s3[i]=rand()%v+1;//随机取运算符和数,v为最大操作数。for(i=1;i<=p;i++) 71 a=rand()%100; 72 b=rand()%3;//在三个整数确定一个为真分数 73 if(b==1&&a>s1[i]) 74 { 75 if(i==1) 76 { 77 cout<<s1[i]<<"/"<<a<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"= "; 78 } 79 else 80 { 81 for(k=0;k<i;k++) 82 { 83 if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i]) 84 { 85 i--; 86 break; 87 } 88 else//比较到最后一个的时候输出题目 89 { 90 if(k==i-1) 91 {cout<<s1[i]<<"/"<<a<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"= "; 92 } 93 } 94 } 95 } 96 if(i%3==0)//每行输出3题目 97 { 98 cout<<endl; 99 cout<<endl;//每行之间空一行 100 } 101 } 102 else if(b==2&&a>s2[i]) 103 { 104 if(i==1) 105 { 106 cout<<s1[i]<<sc1[i]<<s2[i]<<"/"<<a<<sc2[i]<<s3[i]<<"= "; 107 } 108 else 109 { 110 for(k=0;k<i;k++) 111 { 112 if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i]) 113 { 114 i--; 115 break; 116 } 117 else//比较到最后一个的时候输出题目 118 { 119 if(k==i-1) 120 {cout<<s1[i]<<sc1[i]<<s2[i]<<"/"<<a<<sc2[i]<<s3[i]<<"= "; 121 } 122 } 123 } 124 } 125 if(i%3==0)//每行输出3题目 126 { 127 cout<<endl; 128 cout<<endl;//每行之间空一行 129 } 130 } 131 else if(b==3&&a>s3[i]) 132 { 133 if(i==1) 134 { 135 cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"/"<<a<<"= "; 136 } 137 else 138 { 139 for(k=0;k<i;k++) 140 { 141 if(sc1[k]==sc1[i]&&sc2[k]==sc2[i]&&s1[k]==s1[i]&&s2[k]==s2[i]&&s3[k]==s3[i]) 142 { 143 i--; 144 break; 145 } 146 else//比较到最后一个的时候输出题目 147 { 148 if(k==i-1) 149 {cout<<s1[i]<<sc1[i]<<s2[i]<<sc2[i]<<s3[i]<<"/"<<a<<"= "; 150 } 151 } 152 } 153 } 154 if(i%3==0)//每行输出3题目 155 { 156 cout<<endl; 157 cout<<endl;//每行之间空一行 158 } 159 } 160 else 161 {i--; 162 } 163 } 164 } 165 return 0; 166 }
运行截图:
原文地址:https://www.cnblogs.com/guantianhuan/p/9757397.html
时间: 2024-10-25 18:08:16