我编写了一个程序来输入两个10个元素的数组,将它们合并到另一个数组中,删除重复的元素。在接受输入时,输入过程不会以arr2的10个元素结束,而是直接进行。
import java.util.*;
class ReDep
{
public static void main()
{
Scanner sc=new Scanner(System.in);
System.out.println("Enter the values of arr1");
int arr1[]=new int[10];
int arr2[]=new int[10];
int arr3[]=new int[20];
int i,j,k,l,g,h,n,c,d,size,f;
for(i=0;i<10;i++)
{
arr1[i]=sc.nextInt();
}
System.out.println("Enter the values of arr2" );
for(f=0;f<10;f++)
{
arr2[f]=sc.nextInt();
}
System.out.println();
for(j=0;j<10;j++)
{
arr3[j]=arr1[j];
arr3[j+10]=arr3[j];
}
for(k=0;k<19;k++)
{
for(l=0;l<=19-(k+1);l++)
{
if(arr3[l]>=arr3[l+1])
{
c=arr3[l];
arr3[l]=arr3[l+1];
arr3[l+1]=c;
}
}}
size=19;
for(g=0;g<size;g++)
{
if(arr3[g]==arr3[g+1])
{
n=g+1;
while(n<=size)
{
arr3[n]=arr3[n+1];
}
size--;
}
}
for(d=0;d<20;d++)
{
System.out.println(arr3[d]);
}
}
}
我的代码出了什么问题?
答案 0 :(得分:1)
当你没有增加n或递减大小时,你有一个无限:
while(n<=size)
{
arr3[n]=arr3[n+1];
}
你必须增加它:)
while(n<=size)
{
arr3[n]=arr3[n+1];
n++; // or size--;
}
答案 1 :(得分:0)
for(j=0;j<10;j++)
{
arr3[j]=arr1[j];
//change arr3[j] to arr2[j]
arr3[j+10]=arr2[j];
}
修复主要方法的签名。