关于JAVA的两道练习题(初学)
题目是这样的首先让电脑从1,2,3这3个整数中随机选出两个数字(两个数字可以是相同的)然后让求a,要求是:a也为1,2,3中任意一个数字且a不等于之前随机选中的两个数字(...
题目是这样的
首先让电脑从1,2,3这3个整数中随机选出两个数字(两个数字可以是相同的)
然后让求a,要求是:a也为1,2,3中任意一个数字 且a不等于之前随机选中的两个数字(比如说 一开始的两个随机数字分别为1和2 则a就等于3,或是第一第二个数字都为2,则a可以等于1或是等于3)
请问应该如何编写程序呢?
还有一题
如何才能去掉数组中任意指定的一个元素呢?
比如说 让你任意打出10个整数 设为一个数组
然后随机选出一个整数(b)和那个数组进行比对
如果数组中的某一数等于b的话 就将那项删除
请问应该如何写呢?
小弟初学JAVA, 请各位大哥大姐帮帮忙啦~ 学详细越好哦!小弟感激不尽!~~ 展开
首先让电脑从1,2,3这3个整数中随机选出两个数字(两个数字可以是相同的)
然后让求a,要求是:a也为1,2,3中任意一个数字 且a不等于之前随机选中的两个数字(比如说 一开始的两个随机数字分别为1和2 则a就等于3,或是第一第二个数字都为2,则a可以等于1或是等于3)
请问应该如何编写程序呢?
还有一题
如何才能去掉数组中任意指定的一个元素呢?
比如说 让你任意打出10个整数 设为一个数组
然后随机选出一个整数(b)和那个数组进行比对
如果数组中的某一数等于b的话 就将那项删除
请问应该如何写呢?
小弟初学JAVA, 请各位大哥大姐帮帮忙啦~ 学详细越好哦!小弟感激不尽!~~ 展开
4个回答
展开全部
给你个思路,取随机数,如果小于一则乘以十,再判断,如果大于一则对三取余,只有0、1、2三种结果,加一就达到随机取的效果了;还要取就重复以上的操作,如果要不同的那就判断一下和刚才的相等不,如果相等就再取、再判断是否相等,直到不等为止。
第二题,你说的数组是预先分配内存的吗,那就要移动了,先用一个循环查找到要删除的那个在数组中的位置,比如说是第五个位置,那么退出上一个循环后要做的就是移动了,可以不用删除,直接覆盖就是了,把第六个值赋值到第五个位置,然后第七个值赋值给第六个位置...当然要用循环来做了
这下可以了吧,写了这么多该给分了,呵呵
如果提示到这个地步还不会那你就不适合做这行了....
第二题,你说的数组是预先分配内存的吗,那就要移动了,先用一个循环查找到要删除的那个在数组中的位置,比如说是第五个位置,那么退出上一个循环后要做的就是移动了,可以不用删除,直接覆盖就是了,把第六个值赋值到第五个位置,然后第七个值赋值给第六个位置...当然要用循环来做了
这下可以了吧,写了这么多该给分了,呵呵
如果提示到这个地步还不会那你就不适合做这行了....
参考资料: 自己写的
展开全部
第一题:
public class Test6 {
public static void main(String[] args) {
int num1 = (int)((Math.random()*3)+1);
int num2 = (int)((Math.random()*3)+1);
boolean con = true;
System.out.println(num1);
System.out.println(num2);
int a=0;
while(con=true){
a = (int)((Math.random()*3)+1);
if(num1 != a && num2 != a){
System.out.println(a);
con = false;
break;
}
}
System.out.println("\t\t\tGame Over");
}
}
第二题:
import java.util.*;
public class Test5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请选择数组位数");
int i = input.nextInt();
int[] arr = new int[i];
int j = 0;
for (j = 0; j < arr.length; j++) {
System.out.println("请输入第"+(j+1)+"位数");
arr[j] = input.nextInt();
}
int random = (int)(Math.random()*10);
System.out.println(random);
for (int k = 0; k < arr.length; k++) {
if(arr[k]==random){
continue;
}else{
System.out.println("第"+(k+1)+"位数");
System.out.println(arr[k]);
}
}
}
}
public class Test6 {
public static void main(String[] args) {
int num1 = (int)((Math.random()*3)+1);
int num2 = (int)((Math.random()*3)+1);
boolean con = true;
System.out.println(num1);
System.out.println(num2);
int a=0;
while(con=true){
a = (int)((Math.random()*3)+1);
if(num1 != a && num2 != a){
System.out.println(a);
con = false;
break;
}
}
System.out.println("\t\t\tGame Over");
}
}
第二题:
import java.util.*;
public class Test5 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请选择数组位数");
int i = input.nextInt();
int[] arr = new int[i];
int j = 0;
for (j = 0; j < arr.length; j++) {
System.out.println("请输入第"+(j+1)+"位数");
arr[j] = input.nextInt();
}
int random = (int)(Math.random()*10);
System.out.println(random);
for (int k = 0; k < arr.length; k++) {
if(arr[k]==random){
continue;
}else{
System.out.println("第"+(k+1)+"位数");
System.out.println(arr[k]);
}
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x = Math.random();//0到1的double型
x = x*100;//0到100的double型
int y = (int)x;//强制转为整数(1,2 。。。99)
a = y%3;//y对3去余数,这里省去了产生前两个随机数的过程,因为这和直
//接产生一个a随机数是一样的。
a = a+1;//a加1得到 1 2 或 3
第二题:
int[] a = {1,2,3,4,5,6,7,8,9,10};
x = Math.random();
x = x*100;
int y = (int)x;
for(int i=0;i<10;i++){
if(y == a[i]){
for(int j=i;j<9;j++){
a[j]=a[j+1];
}
}
}
x = x*100;//0到100的double型
int y = (int)x;//强制转为整数(1,2 。。。99)
a = y%3;//y对3去余数,这里省去了产生前两个随机数的过程,因为这和直
//接产生一个a随机数是一样的。
a = a+1;//a加1得到 1 2 或 3
第二题:
int[] a = {1,2,3,4,5,6,7,8,9,10};
x = Math.random();
x = x*100;
int y = (int)x;
for(int i=0;i<10;i++){
if(y == a[i]){
for(int j=i;j<9;j++){
a[j]=a[j+1];
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
操,这不是java的问题
任何一个编程都可以解决掉!
任何一个编程都可以解决掉!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询