自动生成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()*100);
  8        
  9         for(int i=0;i<300;i++){
 10             String q="";
 11             int ans=0;
 12             int[] flag=new int[2];
 13             for(int j=0;j<2;j++){
 14                 int f=(int)(Math.random()*4);
 15                 switch(f){
 16                 case 0:
 17                     if(j==0){
 18                         q=a+"+"+b;
 19                     }
 20                     else{
 21                         q=q+"+"+c;
 22                     }
 23                     flag[j]=0;
 24                     break;
 25                 case 1:
 26                     if(j==0){
 27                         q=a+"-"+b;
 28                     }
 29                     else{
 30                         q=q+"-"+c;
 31                     }
 32                     flag[j]=1;
 33                     break;
 34                 case 2:
 35                     if(j==0){
 36                         q=a+"*"+b;
 37                     }
 38                     else{
 39                         q=q+"*"+c;
 40                     }
 41                     flag[j]=2;
 42                     break;
 43                 case 3:
 44                     if(j==0){
 45                         q=a+"/"+b;
 46                     }
 47                     else{
 48                         q=q+"/"+c;
 49                     }
 50                     flag[j]=3;
 51                     break;
 52                 }
 53             }
 54             if(flag[0]<2){
 55                 if(flag[1]<2){
 56                     if(flag[0]==0){
 57                         ans=a+b;
 58                     }
 59                     else{
 60                         ans=a-b;
 61                     }
 62                     if(flag[1]==0){
 63                         ans+=c;
 64                     }
 65                     else{
 66                         ans-=c;
 67                     }
 68                 }
 69                 else{
 70                     if(flag[1]==2){
 71                         ans=b*c;
 72                     }
 73                     else{
 74                         if(c==0){
 75                             System.out.println("分母为零,此题无解");
 76                             continue;
 77                         }
 78                         ans=b/c;
 79                     }
 80                     if(flag[0]==0){
 81                         ans+=a;
 82                     }
 83                     else{
 84                         ans=a-ans;
 85                     }
 86                 }
 87             }
 88             else{
 89                 if(flag[0]==2){
 90                     ans=a*b;
 91                 }
 92                 else{
 93                     if(b==0){
 94                         System.out.println("分母为零,此题无解");
 95                         continue;
 96                     }
 97                     ans=a/b;
 98                 }
 99                 if(flag[1]==0){
100                     ans+=c;
101                 }
102                 else if(flag[1]==1){
103                     ans-=c;
104                 }
105                 else if(flag[1]==2){
106                     ans*=c;
107                 }
108                 else{
109                     if(c==0){
110                         System.out.println("分母为零,此题无解");
111                         continue;
112                     }
113                     ans/=c;
114                 }
115             }
116            
117             System.out.println(q);
118             System.out.println("答案是:"+ans);
119         }
120     }
121
122 }

原文地址:https://www.cnblogs.com/snsn/p/8539041.html

时间: 2024-10-29 00:12:13

自动生成300道四则运算题的相关文章

小学数学老师要求程序能自动生成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++) {           

程序实现自动生成30道四则运算题目

课堂上老师要求我们做这样一个题目,题目要求是自动生成30道四则运算题目,要求除整数加减乘除外,还有真分数加减乘除.刚开始听到这个题目一头雾水,有点复杂,但仔细拆分这个题目不难发现,这个题目可以简化成三个小问题,分别是随机数自动生成两个数,自动生成符号,还有输出结果.对于随机数自动生成两个数可以简化为随机数生成整数,随机数生成真分数,生成真分数可以简化到随机数生成分子和分母.对于自动生成符号,也可以简化为随机数生成1,2,3,4,分别代表+,—,*,/,输出结果可以用一个for循化,实现输出30道

随机生成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道四则运算题程序设计

编程思路: 因为是低年级四则运算题,我考虑出一些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;

程序实现自动生成30道四则运算题目(2)

继上一次的任务后,本周老师又给自动出题系统提出了新的要求,我感觉我跟二柱子一样可怜,本次老师的要求是1.题目避免重复2.题目可以定制(数量/打印方式)3.可以控制一下参数 (1)是否有乘除法 (2)是否有括号(最多可以支持十个数参与运算)(3)数值范围(4)加减有无负数(5)除法有无余数 针对本次任务,我们逐个要求,逐个分析对于题目避免重复可以用建立字符串数组,进行字符串之间相互比较来解决,另外题目可以定制通过随机数生成题目数并带入循环解决,同时打印方式可以用文件输入输出流把数据存到文件里.对于

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

根据程序的功能以及大佬的指教,修改了部分代码,上博中的问题已经成功解决. 修改点: 1.将从键盘获取标识符flag改为利用随机数机制随机产生,随机产生的标识符flag大于等于0,小于4. 2.将产生随机标识符放在循环内部.上次的标识符放在循环之外,这是上次设计的缺陷,导致了一次运行只能产生一种类型的运算题. import java.util.*; public class A { public static void main(String[] args) { int sum=0; int su

实现自动生成30道四则运算题目

这个问题我按照老师的方法,把他分成3部分进行完成, 输入:本程序没有输入略过, 代码实现功能: 1.先生成1道题,30道就是重复30次生成 2.运算符问题可以先定义一个字符串string d="+-*/"然后生成随机数对4取余确定用第几个 3.真分数运算跟运算符生成一个道理也是用随机数对2取余 输出:根据对2取余的情况确定输出整数运算题目或者分数运算题目 #include<iostream> #include<string> #include<stdlib

作业:小学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