java根据奇偶位置将数字从2个数组放到单个数组中
例如:
a=[1,2,3,4]
b=[5,6,7,8]
所以它应该打印出来
c=[1,5,2,6,3,7,4,8]
我不知道出了什么问题 我想我在我假设的循环中出错了
import java.io.*;
class wert
{
public static void main(String[]ert)throws IOException
{
InputStreamReader ni=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(ni);
int k=0,i;
int y[]=new int[3];
int u[]=new int[3];
int c[]=new int[6];
for(i=0;i<3;i++)
{
y[i]=Integer.parseInt(in.readLine());
}
for(i=0;i<3;i++)
{
u[i]=Integer.parseInt(in.readLine());
}
for(i=0;i<3;i++)//even block
{
if(k%2==0)
{
c[k++]=y[i];
}
k++;
}
for(i=0;i<3;i++)//odd block
{
if(k%2!=0)
{
c[k++]=u[i];
}
k++;
}
for(i=0;i<6;i++)
{
System.out.println(c[i]);
}}}
# 1 楼答案
你没有考虑偶数块中另一个数组的偶数元素,反之亦然
我建议你采取更好的方法
在两个数组中循环,从每个数组中适当地添加并放置它
# 2 楼答案
# 3 楼答案
朋友们
完整的运行程序逻辑没有什么不同
# 4 楼答案
您可以在单循环中添加新阵列,如下所示:
# 5 楼答案
@AfterLife刺客只需在完成偶数格挡后添加K=1,即可正常工作。正如在当前代码中一样,在完成偶数块后,k将是6,一旦进入奇数块,它将把第一个值放在c[7],这是不正确的
# 6 楼答案
问题是在偶数for循环中,
k
的增量超过了数组容量,并且在代码退出后将是偶数,因此奇数循环无法工作。您需要将k
变量重置为1我建议您将两个循环合并为一个,如下所示: