测试2错误纠正
错误纠正
这次来一篇简单的四则运算程序吧!
四则运算程序
//Main.java
import java.util.Random;
import java.util.Scanner;
public class Main{
//主界面
public static void main(String[] args)
{
while(true) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要打印的题目数量:");
int sum = sc.nextInt();
System.out.println("请输入操作数的个数:");
int count = sc.nextInt();
System.out.println("请输入操作数的范围:");
int ff = sc.nextInt();
System.out.println("请输入是否有乘除法?1、有 2、没有");
int x = sc.nextInt();
System.out.println("请输入是否添加括号?1、是 2、否");
int y = sc.nextInt();
if (sum < 1 || count < 2 || ff < 0 || (x != 1 && x != 0) || (y != 1 && y != 0)) {
System.out.println("输入错误,请重新输入!");
} else {
getAnswer(sum, count, ff, x, y);
System.exit(-1);
}
}
}
//操作完成界面
public static void getAnswer(int sum,int count,int ff,int x,int y)
{
Random random = new Random();
int[] admin = new int[sum+10000];
int[] getDo = new int[count*2-1];
for(int i = 0;i < sum;i++)
{
boolean ss = true;//判断是否重复的变量
int left = random.nextInt(count - 1);//左边括号的随机性
int right = random.nextInt(count - left) + left + 1;//右边括号的随机性
for(int j = 0;j < count*2-1 ;j++)
{
getDo[j] = random.nextInt(ff);//操作数数值的随机性
}
for(int k = 0; k < count;k++)
{
admin[i] += getDo[k*2]*k;
}
for(int m = 0; m < j ;m++)//重复
{
if(admin[m] == admin[i])
{
ss = false;
break;
}
}
//没有重复--花样输出
if(ss)
{
for(int k = 0;k < count * 2 - 1 ;k++)
{
if(y == 1)//有括号
{
if( 2*left == k)
System.out.print("(");
if(k%2 == 0 && k!= count*2-2)
{
System.out.print(getDo[k] + " ");
if( 2*right - 2 == k)
System.out.print(")");
}
else if(k == count*2-2)
{
System.out.print(getDo[k]);
if( 2*right - 2 == k)
System.out.print(")");
System.out.println(" =");
}
else if(k % 2 == 1)
{
if(x == 1)//有乘除法
{
if(getDo[k]%4 == 1)
{
System.out.print("+ ");
}
else if(getDo[k]%4 == 2)
{
System.out.print("- ");
}
else if(getDo[k]%4 == 3)
{
System.out.print("* ");
}
else if(getDo[k]%4 == 0)
{
System.out.print("/ ");
}
}
else if(x == 0)//没有乘除法
{
if(getDo[k]%2 == 1)
{
System.out.print("+ ");
}
else if(getDo[k]%2 == 0)
{
System.out.print("- ");
}
}
}
}
else//没有括号
{
if(k%2 == 0 && k!= count*2-2)
{
System.out.print(getDo[k] + " ");
}
else if(k == count*2-2)
{
System.out.println(getDo[k] + " =");
if( 2*right - 1 == k)
System.out.print(")");
}
else if(k % 2 == 1)
{
if(x == 1)//有乘除法
{
if(getDo[k]%4 == 1)
{
System.out.print("+ ");
}
else if(getDo[k]%4 == 2)
{
System.out.print("- ");
}
else if(getDo[k]%4 == 3)
{
System.out.print("* ");
}
else if(getDo[k]%4 == 0)
{
System.out.print("/ ");
}
}
else if(x == 0)//没有乘除法
{
if(getDo[k]%2 == 1)
{
System.out.print("+ ");
}
else if(getDo[k]%2 == 0)
{
System.out.print("- ");
}
}
}
}
}
}
}
}
}

浙公网安备 33010602011771号