gpt4 book ai didi

c - 数组复制零?

转载 作者:行者123 更新时间:2023-11-30 21:37:29 25 4
gpt4 key购买 nike

我有两个数组,如果一个数字在 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++;
}

最佳答案

因此,当您说“如果一个数字在 1 个数组中重复”时,您的意思是下一个索引中的数字与当前索引中的数字相同,还是该数字在整个数组中重复?正如您的代码所示,您仅检查下一个值是否重复。

  for (i = 0; i < linect; i++)
{
if (array1[i] > 0.5){
fixarray1[i] = array1[i];
fixarray2[i] = array2[i];
}
}

只会将非零值复制到数组 2 中数组 1 中存在非零值的索引处。因此,您实际上并没有删除任何 0 值,您只是创建另一个数组 fixarray2[i]array2[i] 相同。如果您想跳过旧数组中的所有零,则需要保留一个单独的计数器。

关于c - 数组复制零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31248143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com