Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我有两个数组,如果在1个数组中重复一个数字,我会将两个中的对应位置都设置为零。然后,我想将其存储在一个单独的数组中,现在忽略那些零并复制其余的零。但是现在如果我尝试这样做,它只是将数组复制为零,有什么想法吗?
在这个循环中,仅当array1中的值不为零时,fixarray的索引才应递增。
仅当array1中的元素不为零时,才将值存储在fixarray中。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我有两个数组,如果在1个数组中重复一个数字,我会将两个中的对应位置都设置为零。然后,我想将其存储在一个单独的数组中,现在忽略那些零并复制其余的零。但是现在如果我尝试这样做,它只是将数组复制为零,有什么想法吗?
for (i = 0; i < linect; i++) //searches array sets repeated points to zero
{
if (array1[i] == array1[i+1])
{
array1[i] = array1[i + 1] = 0;
array2[i] = array2[i + 1] = 0;
}
}
for (i = 0; i < linect; i++)
{
if (array1[i] > 0.5){
fixarray1[i] = array1[i];
fixarray2[i] = array2[i];
}
}
j = 0;
while (j <300){
printf("\n%f", fixarray2[j]);
j++;
}
最佳答案
在循环中,仅当array1中的元素不为零时,值才存储在fixarray中,但是即使元素为零,其索引也会递增。
for (i = 0; i < linect; i++)
{
if (array1[i] > 0.5)
{
fixarray1[i] = array1[i];
fixarray2[i] = array2[i];
}
}
在这个循环中,仅当array1中的值不为零时,fixarray的索引才应递增。
int j=0;
for(i = 0; i < linect; i++)
{
if(array1[i]>0.5)
{
fixarray1[j] = array1[i];
fixarray2[j] = array2[i];
j++;
}
}
仅当array1中的元素不为零时,才将值存储在fixarray中。
关于c - 数组复制零? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31248143/