JAVA 二维ARRAY中数字概率问题
用户在1-50里面输入6个数字(超出显示错误)之后电脑再随机从1-50里面抽出6个数字.到最后看看用户猜对多少个数字随机的方法懂.但是要看跟用户输入做比较的有点不懂求各位...
用户在1-50里面输入6个数字 (超出显示错误)
之后电脑再随机从1-50里面抽出6个数字.
到最后看看用户猜对多少个数字
随机的方法懂. 但是要看跟用户输入做比较的有点不懂
求各位帮忙. 最好给个代码. 展开
之后电脑再随机从1-50里面抽出6个数字.
到最后看看用户猜对多少个数字
随机的方法懂. 但是要看跟用户输入做比较的有点不懂
求各位帮忙. 最好给个代码. 展开
展开全部
排序,略,如果不懂就再给你写
比较,略,给你算法
先将要比较的两个double[] 数组排好序,然后比较
加入为arr1与arr2 arr1为随即产生的
当arr1[i]>arr2[j] j++
当arr1[i]<arr2[j] i++
相等,则i++;j++且相同数自加一
注意,输入的时候要处理不能输入相同数字,随机产生数字同样
输入可以用 java.util.Scanner sc=new java.util.Scanner(System.in);
输入整数:int inputInt=sc.nextInt();
输入double:double inputDouble=sc.nextDouble();
OK,还有什么不懂的
比较,略,给你算法
先将要比较的两个double[] 数组排好序,然后比较
加入为arr1与arr2 arr1为随即产生的
当arr1[i]>arr2[j] j++
当arr1[i]<arr2[j] i++
相等,则i++;j++且相同数自加一
注意,输入的时候要处理不能输入相同数字,随机产生数字同样
输入可以用 java.util.Scanner sc=new java.util.Scanner(System.in);
输入整数:int inputInt=sc.nextInt();
输入double:double inputDouble=sc.nextDouble();
OK,还有什么不懂的
更多追问追答
追问
好复杂. 能不能写个全的. 诚心求代码 谢谢大神
追答
public class Demo {
private int [] arr1=new int[6];
private int[] arr2=new int[6];
public Demo(){
input();
initArr1();
System.out.println("相同的个数为:"+this.getTheSame());
}
private void initArr1(){
for(int i=0;i<6;){
arr1[i]= (int)(Math.random()*50+1);
if(!haveTheSame(arr1,i,arr1[i])){
i++;
}
}
System.out.print("随机产生的6个整数为:");
for(int i:arr1){
System.out.print(i+" ");
}
}
private boolean haveTheSame(int arr[],int length,int key){
for(int i=0;i<length;i++){
if(arr[i]==key) return true;
}
return false;
}
private void input(){
java.util.Scanner sc=new java.util.Scanner(System.in);
System.out.println("请输入6个互不相等的整数,1-50之间");
for(int i=0;i<6;){
arr2[i]=sc.nextInt();
if(arr2[i]<=50&&arr2[i]>=1 && !haveTheSame(arr2,i,arr2[i])){
i++;
}else{
System.out.println("输入的数值不能重复或者不能超出1-50的范围,请输入其它数值");
}
}
}
private void soft(int [] arr){
for(int i=0;i<arr.length;i++){
for(int j=i;j<arr.length;j++){
if(arr[i]>arr[j]){
int tmp=arr[j];
arr[j]=arr[i];
arr[i]=tmp;
}
}
}
}
private int getTheSame(){
int f=0;
int j=0;
soft(arr1);
soft(arr2);
for(int i=0;i<6;){
if(j>=6) break;
if(arr1[i]==arr2[j]){
i++;j++;f++;
}else if(arr1[i]<arr2[j]){
i++;
}else{
j++;
}
}
return f;
}
public static void main(String [] args){
Demo d=new Demo();
}
}我觉得我讲解得还可以啊,怎么你这都写不出
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询