随机产生300个四则运算题

代码如下(一次修改后):

  1 public class questions {
  2 
  3     public static void main(String[] args) {
  4         // TODO Auto-generated method stub
  5         
  6         for(int i=0;i<300;i++){
  7             int a=(int)(Math.random()*100);
  8             int b=(int)(Math.random()*100);
  9             int c=(int)(Math.random()*100);
 10             
 11             String q="";
 12             int ans=0;
 13             int[] flag=new int[2];
 14             for(int j=0;j<2;j++){
 15                 int f=(int)(Math.random()*4);
 16                 switch(f){
 17                 case 0:
 18                     if(j==0){
 19                         q=a+"+"+b;
 20                     }
 21                     else{
 22                         q=q+"+"+c;
 23                     }
 24                     flag[j]=0;
 25                     break;
 26                 case 1:
 27                     if(j==0){
 28                         q=a+"-"+b;
 29                     }
 30                     else{
 31                         q=q+"-"+c;
 32                     }
 33                     flag[j]=1;
 34                     break;
 35                 case 2:
 36                     if(j==0){
 37                         q=a+"*"+b;
 38                     }
 39                     else{
 40                         q=q+"*"+c;
 41                     }
 42                     flag[j]=2;
 43                     break;
 44                 case 3:
 45                     if(j==0){
 46                         q=a+"/"+b;
 47                     }
 48                     else{
 49                         q=q+"/"+c;
 50                     }
 51                     flag[j]=3;
 52                     break;
 53                 }
 54             }
 55             if(flag[0]<2){
 56                 if(flag[1]<2){
 57                     if(flag[0]==0){
 58                         ans=a+b;
 59                     }
 60                     else{
 61                         ans=a-b;
 62                     }
 63                     if(flag[1]==0){
 64                         ans+=c;
 65                     }
 66                     else{
 67                         ans-=c;
 68                     }
 69                 }
 70                 else{
 71                     if(flag[1]==2){
 72                         ans=b*c;
 73                     }
 74                     else{
 75                         if(c==0){
 76                             System.out.println("分母为零,此题无解");
 77                             continue;
 78                         }
 79                         ans=b/c;
 80                     }
 81                     if(flag[0]==0){
 82                         ans+=a;
 83                     }
 84                     else{
 85                         ans=a-ans;
 86                     }
 87                 }
 88             }
 89             else{
 90                 if(flag[0]==2){
 91                     ans=a*b;
 92                 }
 93                 else{
 94                     if(b==0){
 95                         System.out.println("分母为零,此题无解");
 96                         continue;
 97                     }
 98                     ans=a/b;
 99                 }
100                 if(flag[1]==0){
101                     ans+=c;
102                 }
103                 else if(flag[1]==1){
104                     ans-=c;
105                 }
106                 else if(flag[1]==2){
107                     ans*=c;
108                 }
109                 else{
110                     if(c==0){
111                         System.out.println("分母为零,此题无解");
112                         continue;
113                     }
114                     ans/=c;
115                 }
116             }
117             
118             System.out.println(q);
119             System.out.println("答案是:"+ans);
120         }
121     }
122 
123 }

运行结果如下:

【修改了获取随机数的次序,使每一题涉及到的数字不同】

原文地址:https://www.cnblogs.com/ForeverSevrous/p/8530350.html