2021.9.17课堂测试优化

 

对上次的题目中其中一个函数进行了优化,让它可以接受多个操作数的运算,但是仍然存在俩个问题。其一:前几位产生的数字相等;其二:最前面的括号不能显现。还需要改进。

public static void xuChengKuo(int i,int c,int z) //i是题目数量,c是算式范围,z是操作数
{
Random random=new Random();


for(int j=0;j<i;j++) {
int k1,k2,k3;
int cao[]=new int[z];
int fu1[]=new int[z-1];
String fu2[]=new String[z-1];
int x1,x2;
k1=random.nextInt(z);
k2=random.nextInt(z);
if(k1>k2) {
k3=k1;
k1=k2;
k2=k3;
}
k3=random.nextInt(2);
if(k2-k1==1||k1-k2==0) k3=0;
for(x1=0;x1<z;x1++) {
int a=random.nextInt(c+1);
cao[x1]=a+1;
}
for(x2=0;x2<z-1;x2++) {
int b=random.nextInt(4);
fu1[x2]=b;
if(fu1[x2]==0) {
fu2[x2]="+";
}
if(fu1[x2]==1) {
fu2[x2]="-";
}
if(fu1[x2]==2) {
fu2[x2]="*";
}
if(fu1[x2]==3) {
fu2[x2]="/";
}
}
for(int j1=0;j1<z-1;j1++) {
if(k3==0) {
System.out.print(cao[j]);
System.out.print(fu2[j1]);
}
else {if(k1==j1) System.out.print("(");
System.out.print(cao[j]);
if(k2==j1) System.out.print(")");
System.out.print(fu2[j1]);
}
}
if(k2==z-1) System.out.println(cao[z-1]+")");
else System.out.println(cao[z-1]);
}
}

 

posted @ 2021-09-19 23:11  听风1234  阅读(39)  评论(0编辑  收藏  举报