例如:
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]);
}}}
答案 0 :(得分:0)
您没有考虑偶数块中其他数组的偶数元素,反之亦然。
我建议你采取更好的方法。
遍历两个数组,从每个数组中适当添加并放入它。
Scanner sc = new Scanner(System.in);
int a[] = new int[4];
int b[] = new int[4];
int c[] = new int[8];
for(int i = 0; i < a.length; ++i)
a[i] = sc.nextInt();
for(int i = 0; i < b.length; ++i)
b[i] = sc.nextInt();
for(int i = 0, k = 0; i < a.length; i ++)
{
c[k++] = a[i];//take from the 1st array
c[k++] = b[i];//take from the 2nd array
}
System.out.println(Arrays.toString(c));
答案 1 :(得分:0)
你的问题是在你的for循环中,你的k
增量超出了数组容量,甚至在代码退出后也是如此,因此奇数循环不起作用。您需要将k
变量重置为1。
我建议你将两个循环合并为:
for(i=0;i<y.length;i++) {
c[k++]=y[i];
c[k++]=u[i];
}
答案 2 :(得分:0)
您可以在单循环中添加新数组,如下所示:
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++)
{
c[k++]=y[i];
c[k++]=u[i];
}
for(i=0;i<6;i++)
{
System.out.println(c[i]);
}
}
}
答案 3 :(得分:0)
@AfterlifeAssassin在完成偶数块后添加K = 1,它将正常工作。与当前代码一样,偶数块完成后k将为6,一旦进入奇数块,它将把第一个值放在c [7],这是不正确的。
答案 4 :(得分:0)
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++)
{
if(k%2==0)
{
c[k++]=y[i];
}
k++;
}
k=1;//resetting the k
for(i=0;i<3;i++)
{
if(k%2!=0)
{
c[k++]=u[i];
}
k++;
}
for(i=0;i<6;i++)
{
System.out.println(c[i]);
}}}
答案 5 :(得分:0)
这里有朋友!!
完整的运行程序逻辑差别不大
class nc
{
public static void main(String args[])
{
int a[]={1,2,3,4}; //array 1
int b[]={5,6,7,8}; //array 2
int c[]=new int[10]; //new Array
int EVEN=0;
int ODD=1;
boolean dishq,bishq;
int uban=1;
int tban=1;
dishq=true;
bishq=true;
for(int i=0;i<8;i++)
{
if(i%2==0)
{
if(dishq)
{
c[i]=a[0];
dishq=false;
}
else
{
c[i]=a[uban];
uban=uban+1;
}
}
if(i%2==1)
{
if(bishq)
{
c[i]=b[0];
bishq=false;
}
else
{
c[i]=b[tban];
tban=tban+1;
}
}
}
for(int i=0;i<c.length-2;i++)
System.out.println(c[i]);
}
}