标签:Scanner int 四则运算 System new 式子 小学生 out
一、题目:随机生出小学四则运算题目。减法结果不能为负数;乘法结果小于100;除法除数不为零,并且能够整除。①.题目避免重复;②.可定制(数量和打印方式)。
二、设计思路
1、随机生成两个操作数和一个代表运算符号的数;
2、要避免重复就要和之前出现的作比较,所以原来出现过的数据就要存下来,我定义了三个数组分别来存储两个操作数和代表运算符号的数;
3、判断随机生成的三个数是否符合运算要求,是则以适当的形式输出,否则丢掉这组随机数,重新生成;
4、若选择你n个一行输出形式,则判断i(第i个式子)能否整除n,能则输出换行,否则不换行。
三、源程序
package org.yuan.Day1; import java.util.Scanner; public class Yunsuan { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("请输入算式的 个数:"); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); System.out.print("输入几个式子换一行:"); int k=sc.nextInt(); int []x=new int[1000]; int []y=new int[1000]; int []p=new int[1000]; for(int i=0;i<n;i++) { x[i]=(int)(Math.random()*100); y[i]=(int)(Math.random()*100); p[i]=(int)(Math.random()*4); for(int j=0;j<i-1;) { if(x[j]==x[i]&&y[j]==y[i]&&p[j]==p[i]) i--; break; } switch(p[i]) { case 0: System.out.print(i+1+"."+x[i]+"+"+y[i]+"="+" "); if((i+1)%k==0) { System.out.println("\n"); } break; case 1: if(x[i]>y[i]) { System.out.print(i+1+"."+x[i]+"-"+y[i]+"="+" "); if((i+1)%k==0) { System.out.println("\n"); } } else i--; break; case 2: if(x[i]*y[i]<100) { System.out.print(i+1+"."+x[i]+"*"+y[i]+"="+" "); if((i+1)%k==0) { System.out.println("\n"); } } else i--; break; case 3: if(y[i]!=0&&x[i]%y[i]==0) { System.out.print(i+1+"."+x[i]+"/"+y[i]+"="+" "); if((i+1)%k==0) { System.out.println("\n"); } } else i--; break; } } } }
四、实验总结:
1、通过这道题对随机数有了一些了解,掌握了生成随机数的基本方法;
2、实验过程中将换行部分的代码写在了switch语句外面,结果运行的时候就有的行距会特别大。原因是有的不符合的式子(恰巧能整除n的那些式子)丢掉了但在for循环里依旧执行。
标签:Scanner,int,四则运算,System,new,式子,小学生,out 来源: https://www.cnblogs.com/tianwenjing123-456/p/11552802.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。