数组程序将某个值从一个数组存储到另一个数组,给出错误的输出,而 运行 java 中的以下代码
array program to store a certain value from one array to another giving wrong output while running the below code in java
包 Starter_Code;
public class 解决方案{
public int[] checkNumber(int[] inIntArr1,int[] inIntArr2) {
int[] outIntArr=new int[inIntArr1.length];
int temp,pro=1;
int k=0;
for(int i=0;i<inIntArr1.length;i++){
for(int j=0;j<inIntArr2.length;j++){
if(inIntArr1[i]==inIntArr2[j]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}else if(Math.pow(inIntArr1[i], 2)==inIntArr2[j]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}else if(inIntArr1[inIntArr1.length-1]==inIntArr2[inIntArr2.length-1]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}else{
while(inIntArr1[i]>0){
temp=(inIntArr1[i])%10;
pro=pro*temp;
inIntArr1[i]=inIntArr1[i]/10;
}
if(pro==inIntArr2[j]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}
}
}
}
return outIntArr;
}
}
包 Starter_Code;
public class 测试员 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] inIntArr1= {26,17,25,35,39,63};
int[] inIntArr2= {26,671,11,21,14,28};
//Create an object of Solution
Solution sol = new Solution();
//Call checkNumber()
int[] result = sol.checkNumber(inIntArr1, inIntArr2);
//display the output
System.out.println(result);
}
}
在这段代码中,我必须根据我在 if 语句中给出的条件将 inIntarr1 的值存储到 outIntArr,outIntArr 的长度应该在 inIntArr1 的范围内,但输出是这样的[我@7a8ce1e1
该数组不包含小于其长度的数字 (i < inIntArr1),因此会引发错误。
直接打印数组将始终为您提供哈希码。
像下面这样更改您的代码,将获得可读格式的输出。
当前代码:
//显示输出
System.out.println(result);
建议代码:
试试这个
// 显示输出
System.out.println(Arrays.toString(result));
包 Starter_Code;
public class 解决方案{
public int[] checkNumber(int[] inIntArr1,int[] inIntArr2) {
int[] outIntArr=new int[inIntArr1.length];
int temp,pro=1;
int k=0;
for(int i=0;i<inIntArr1.length;i++){
for(int j=0;j<inIntArr2.length;j++){
if(inIntArr1[i]==inIntArr2[j]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}else if(Math.pow(inIntArr1[i], 2)==inIntArr2[j]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}else if(inIntArr1[inIntArr1.length-1]==inIntArr2[inIntArr2.length-1]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}else{
while(inIntArr1[i]>0){
temp=(inIntArr1[i])%10;
pro=pro*temp;
inIntArr1[i]=inIntArr1[i]/10;
}
if(pro==inIntArr2[j]){
outIntArr[k]=inIntArr1[i];
k++;
break;
}
}
}
}
return outIntArr;
}
}
包 Starter_Code;
public class 测试员 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] inIntArr1= {26,17,25,35,39,63};
int[] inIntArr2= {26,671,11,21,14,28};
//Create an object of Solution
Solution sol = new Solution();
//Call checkNumber()
int[] result = sol.checkNumber(inIntArr1, inIntArr2);
//display the output
System.out.println(result);
}
}
在这段代码中,我必须根据我在 if 语句中给出的条件将 inIntarr1 的值存储到 outIntArr,outIntArr 的长度应该在 inIntArr1 的范围内,但输出是这样的[我@7a8ce1e1
该数组不包含小于其长度的数字 (i < inIntArr1),因此会引发错误。
直接打印数组将始终为您提供哈希码。 像下面这样更改您的代码,将获得可读格式的输出。
当前代码:
//显示输出
System.out.println(result);
建议代码: 试试这个
// 显示输出
System.out.println(Arrays.toString(result));