gpt4 book ai didi

c - 循环遍历数组并将某些值分配给另一个数组

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

所以我有一个包含 16 个元素的数组。我知道这个数组中有 2 个我不想要的元素。所以我声明了另一个大小为 14 的数组。但是,如何循环遍历 16 个元素的数组并将这 14 个变量分配给新数组,而不会出现空格,因为其他 2 个值也在循环中的某个点使用。

例如:

double firstArray[16] = {10.0, 2.0, 3.4, 7.0, 50.0, 1.2, 4.2, 6.8, 8.9, 7.9, 8.6, 2.1, 3.2, 4.7, 8.9, 0.8};

我想循环遍历这个数组并将除 2.0 和 3.4 之外的所有值放入:

 double secondArray[14]

我一直在使用 foo 循环,但由于它使用相同的索引,它会在第二个数组中留下空格并且不会到达末尾。

最佳答案

在 for 循环中声明两个变量作为索引。

你在这里

#include <stdio.h>

int main(void)
{
enum { N = 16 };
double firstArray[N] =
{
10.0, 2.0, 3.4, 7.0, 50.0, 1.2, 4.2, 6.8,
8.9, 7.9, 8.6, 2.1, 3.2, 4.7, 8.9, 0.8
};

double secondArray[N - 2];

for ( size_t i = 0, j = 0; i < N; i++ )
{
if ( firstArray[i] != 2.0 && firstArray[i] != 3.4 )
{
secondArray[j++] = firstArray[i];
}
}

for ( size_t i = 0; i < N - 2; i++ ) printf( "%.1f ", secondArray[i] );
putchar( '\n' );

return 0;
}

程序输出为

10.0 7.0 50.0 1.2 4.2 6.8 8.9 7.9 8.6 2.1 3.2 4.7 8.9 0.8 

事实上,您不需要定义第二个数组。您可以将不需要的值移动到原始数组的末尾,并保留数组中实际元素的新值。

关于c - 循环遍历数组并将某些值分配给另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57523869/

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