作业1(修正版)
1 import java.util.Scanner; 2 3 public class zyz 4 { 5 static String result =null;//得到的算数式结果 6 static int randomNumber = 0;//每一个随机生成的运算数,多次调用获得 7 static int base = 0;//每个式子随机生成一个基数--首个运算数 8 static int numberAmount = 0;//随机生成的算数式的运算数的个数(每个运算式的加数个数可能不一样)>1且<5 9 static int answer = 0;//每一个运算式的算数答案 10 public static void yield(){ //循环产生运算数和符号的函数 11 //这个for循环执行的是一个式子的事情 12 boolean hasDivision = false; 13 for (int j = 0;j<numberAmount-1;j++){ 14 int symbol = (Math.random() > 0.5 ? 0 : 2); 15 randomNumber = (int)(Math.random()*100)+1;//每次生成一个随机运算数 16 if (symbol==0){ 17 result = result+"+"+String.valueOf(randomNumber); 18 answer = answer+randomNumber; 19 } else if (symbol==1) { 20 result = result+"-"+String.valueOf(randomNumber); 21 answer = answer-randomNumber; // 这里原来是加法,应该是减法 22 } else if (symbol==2) { 23 result = result+"×"+String.valueOf(randomNumber); 24 answer = answer*randomNumber; 25 } else if (symbol==3 && !hasDivision) { // 修改在这里,只有当没有除法时才添加除法 26 result = result+"÷"+String.valueOf(randomNumber); 27 answer = answer/randomNumber; 28 hasDivision = true; // 添加除法后标记为已添加除法 29 } 30 } 31 } 32 public static void main(String[]args){ 33 System.out.println("请输入想要的题目数量"); 34 Scanner scanner = new Scanner(System.in); 35 int number = scanner.nextInt();//用户期望得到的算式数量 36 //循环生成number个式子 37 for(int i = 0;i<number;i++){ 38 //首先随机生成一个式子的运算数的个数,要求个数在2个以上(自定义小于5个) 39 numberAmount = (int)(2+Math.random()*(4)); 40 base = (int)(Math.random()*100)+1;//生成一个随机基数 41 result = String.valueOf(base); 42 answer = base; 43 zyz.yield(); 44 while(answer<0){//答案为0的时候重新生成,不为0跳出 45 result = String.valueOf(base); 46 answer = base; 47 zyz.yield(); 48 } 49 System.out.println(result+"="+answer); 50 } 51 } 52 }
上一个代码有错误,以上为修正版
浙公网安备 33010602011771号