题目:对于小学生的四则运算进行出题,数字都是系统任意选出。并标明题号,对于每一个题目不重复出现。并且要保证两个数相乘是两位数或者是一位数。对于相除的两个数除数不能为零,并且可以整除。自己可以控制题目的总数目,以及每行输出的个数都可以控制。
package LianXi; import java.util.Scanner; class sizeyunsuan { public static void main(String []args) { Scanner scan=new Scanner(System.in); System.out.println("请输入想要输出的题目数目:"); int w1=scan.nextInt(); System.out.println("请输入每行想要输出的题目数目:"); int w2=scan.nextInt(); int a1,a2; int b1,b2,b3; int w3[]=new int[100];//创建八个数组初始化全为0 int w4[]=new int[100]; int w5[]=new int[100]; int w6[]=new int[100]; int w7[]=new int[100]; int w8[]=new int[100]; int w9[]=new int[100]; int w10[]=new int[100]; char wen[]= {'+','-','*','/'}; nn:for(a1=1;a1<=w1;) { for(a2=1;a2<=w2;) { b1=(int)(Math.random()*100);//随机产生0到99之间的数字 b2=(int)(Math.random()*100); b3=(int)(Math.random()*4);//随机产生0到3之间的数字。 if(b3==0)//是+的符号是时候 { if(w3[b1]==1) { if(w4[b2]==1) { continue; } } else { w3[b1]=1;//当出现相应的数字时,对应数组位置赋值为1,以此来判断是否出现该数字 w4[b2]=1; } } if(b3==1)//当符号为-的时候 { if(b1>=b2) { if(w5[b1]==1) { if(w6[b2]==1) { continue; } } else { w5[b1]=1; w6[b2]=1; } } else continue; } if(b3==2)//当符号是*时候进行的操作 { if((b1*b2)/100==0) { if(w7[b1]==1) { if(w8[b2]==1) { continue; } } else { w7[b1]=1; w8[b2]=1; } } else continue; } if(b3==3)//当符号为\时候进行的操作 { if(b2!=0&&b1%b2!=0) { continue; } if(b2==0) { continue; } if(w9[b1]==1) { if(w10[b2]==1) { continue; } } else { w9[b1]=1; w10[b2]=1; } } if(true) { if(a2!=w2) System.out.print(a1+": "+b1+wen[b3]+b2+"= "); else System.out.println(a1+": "+b1+wen[b3]+b2+"= "); } if(a1==w1)//跳出最外面的for循环 break nn; ++a1; ++a2; } } } }
定义多个数组大小为100并且全部初始化为0,在相应的符号中判断对应的数字是否出现。将对应的数组位置对应的值变为1,之后直接判断数字对应位置中的值是1还是0.依次来判断之前是否出现过。最后决定是否输出。自己收获了很多。