【修改】随机产生300道四则运算题(限制:小学水平)

根据程序的功能以及大佬的指教,修改了部分代码,上博中的问题已经成功解决。

修改点:

1.将从键盘获取标识符flag改为利用随机数机制随机产生,随机产生的标识符flag大于等于0,小于4。

2.将产生随机标识符放在循环内部。上次的标识符放在循环之外,这是上次设计的缺陷,导致了一次运行只能产生一种类型的运算题。

import java.util.*;

public class A {
public static void main(String[] args) {

int sum=0;
int sub=0;
int mult=0;
float div=0;
for(int j=0;j<300;j++){
Random ran=new Random();
//产生随机的标识符flag(标识符flag大于等于0,小于4)
int flag = ran.nextInt(4);
//生成两个随机数
int a=ran.nextInt(100);
int b=ran.nextInt(100);
System.out.println("产生两个随机整数:"+a+","+b);
//根据标识符确定执行何种运算
switch(flag){
case 0:{ sum=a+b;
System.out.println("sum="+sum);
break;}
case 1:{ if(a>b) sub=a-b; //运算结果不能为负
else sub=b-a;
System.out.println("sub="+sub);
break;}
case 2:{ mult=a*b;
System.out.println("mult="+mult);
break;}
case 3:{ if(b!=0) div=(float)a/(float)b; //两个数都为整数,结果也会为整数,除不进的全部为0,需要强制转换为float型
else System.out.println("除数为零,无法进行除法运算!");
System.out.println("div="+div);
break;}
}
}
}

}

功能是实现了,如果有更好的设计方法可以使代码变得更简洁,还是请多多指教。

原文地址:https://www.cnblogs.com/Doraemon12138/p/8546311.html

时间: 2024-11-10 06:40:45

【修改】随机产生300道四则运算题(限制:小学水平)的相关文章

随机生成30道四则运算题

思路:首先随机生成两个操作数.将运算符存到数组c中,随机生成0-3的整数作为数组下标.即相当于随机产生运算符. 利用for循环输出30道四则运算题 #include<iostream.h>#include<stdlib.h>int main(){     int a,b,d,i;     char c[4]={'+','-','*','/'};     for(i=0;i<30;i++)     {           a=int(rand()%11);           

随机输出30道四则运算题

题目要求:随机输出30道小学二年级四则运算题. 思路:用for循环实现数量30道,rand函数产生随机数,switch语句加0到3的随机数实现四种运算的随机输出,if语句添加限制条件,用取余方式限制运算数.结果不超过100,除法不出现分数等,以符合小学二年级的实际水平. 编写过程中,在写if语句添加限制条件时,不符合条件的不知道如何实现跳转,出现了数量不足30道的情况,后通过程序中定义的整型 i 自减实现. 代码如下: #include<iostream.h>#include <stdl

随机生成30道四则运算题程序设计

编程思路: 因为是低年级四则运算题,我考虑出一些100以内的加减乘除,又是随机生成,所以用上了rand函数,又有选择性的用到了switch  case结构,达到30道题的无序性.而且针对减法和除法的特殊情况做了些细节考虑. 源代码: #include<iostream.h>#include<stdlib.h>int main(){ int a,b,c; for(int i=1;i<31;i++){ a=rand()%100; b=rand()%100; c=rand()%4;

随机出现300道四则运算数学题

package math; public class math { public static void subject(Object obj) { System.out.println(obj); } public static void main(String[] args) { subject("数学课后练习题:"); int count = 0; for (int i = 0; i < 300; i++) { int d1 = (int) ((Math.random())

随机的30道四则运算题(简单的c)

#include <stdio.h>#include <stdlib.h>#include <time.h> int main(void){ int i = 0; srand((unsigned)time(NULL)); //本地时间为种子 while(i<30) { int a = rand()%100; //产生随机数 int b = rand()%100; int j;   j = rand()%4; //产生随机符号0到3分别代表四则运算 printf(&

自动生成300道四则运算题

1 public class questions {  2   3     public static void main(String[] args) {  4         // TODO Auto-generated method stub  5         int a=(int)(Math.random()*100);  6         int b=(int)(Math.random()*100);  7         int c=(int)(Math.random()*10

作业:小学300道四则运算题

1 package demo; 2 3 import java.text.DecimalFormat; 4 import java.util.Random; 5 6 public class Demo { 7 8 public static void main(String[] args) { 9 maths(); 10 } 11 12 public static void maths() { 13 Random number = new Random(); 14 for (int x = 1;

随机生成300道四则运算

package lianxi; import java.util.Random; public class Sizeyunsuan { public static void main(String args[]) {                char f[] = { '+', '-', '*', '/' };        int max=100;        for (int i = 0; i < 300; i++) {            Random random = new R

小学数学老师要求程序能自动生成300道四则运算题!!!!

public class Main {    public static void main(String[] ages) {        String[] operate = new String[]{"+", "-", "×", "÷"};        int[] numbers = new int[100];        for (int i = 1; i <= 100; i++) {