C# 使用循环将表内容复制到另一个
我刚接触C#,我有一个家庭作业问题,我正在努力解决。我无法将一个表的内容复制到另一个具有循环的表。我希望它将10元素预定义表中的正数复制到第二个表中,并在完成后在控制台中显示内容C# 使用循环将表内容复制到另一个,c#,loops,C#,Loops,我刚接触C#,我有一个家庭作业问题,我正在努力解决。我无法将一个表的内容复制到另一个具有循环的表。我希望它将10元素预定义表中的正数复制到第二个表中,并在完成后在控制台中显示内容 int[] tab1 = { 4, 6, 32, 16, 5, 22, -3, 61, 11, 99 }; int[] tab2 = new int[tab1.Length]; for (int i = 0; i < tab2.Length; i++) { while(i > 0) { ta
int[] tab1 = { 4, 6, 32, 16, 5, 22, -3, 61, 11, 99 };
int[] tab2 = new int[tab1.Length];
for (int i = 0; i < tab2.Length; i++)
{
while(i > 0)
{
tab2[i] = tab1[i];
}
}
for (int i = 0; i < tab2.Length; i++)
{
Console.Write(tab2[i] + ", ");
}
Console.ReadKey();
int[]tab1={4,6,32,16,5,22,-3,61,11,99};
int[]tab2=新int[tab1.Length];
对于(int i=0;i0)
{
tab2[i]=tab1[i];
}
}
对于(int i=0;i
如果您不知道有多少项是正数(将在选项卡2中),则无法定义第二个数组的大小。因此,您最好使用列表,在那里可以存储所需数量的项目if(tab1[i]>0)将检查第一个数组中的项
int[] tab1 = { 4, 6, 32, 16, 5, 22, -3, 61, 11, 99 };
List<int> tab2 = new List<int>();// because you dont know how many items positive
for (int i = 0; i < tab1.Length; i++)
{
if (tab1[i] > 0)
{
tab2.Add(tab1[i]);
}
}
for (int i = 0; i < tab2.Count; i++)
{
Console.Write(tab2[i] + ", ");
}
Console.ReadKey();
int[]tab1={4,6,32,16,5,22,-3,61,11,99};
列表选项卡2=新列表();//因为你不知道有多少项是正面的
for(int i=0;i0)
{
表2.增加(表1[i]);
}
}
对于(int i=0;i
第一个肯定项会使程序进入无限循环
将for
循环中的更改为if
。在while
中,您有tab2[i]=tab1[i]代码>,对于每个i
,它永远不会改变while循环上的条件。因此,对于数组中的每个项,您要么无限次地执行项的赋值,要么从不执行赋值
将while
更改为if
将删除循环(在循环中),并计算循环中单个元素的条件表达式
另一种思考方式是:“对于这些项中的每一项,如果该项为正,我将把它分配给另一个数组”。您在代码中表示的是“对于这些项中的每一项,当该项为正数时,将其分配给另一个数组”,该数组不满足您的要求。请查看while(i>0)
。i
是否已设置为其他值?似乎您希望if(tab1[i]>0)
检查该位置的值是否为正值。虽然此代码可以解决问题,但如何以及为什么解决此问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。