C 循环遍历数组并将某些值分配给另一个数组
所以我有一个有16个元素的数组。我知道在这个数组中有两个元素是我不想要的。所以我声明了另一个大小为14的数组。但是,我如何循环16个元素的数组,并在没有空格的情况下将这14个变量分配给新数组,因为其他2个值也用于循环中的某个点 例如:C 循环遍历数组并将某些值分配给另一个数组,c,arrays,loops,for-loop,C,Arrays,Loops,For Loop,所以我有一个有16个元素的数组。我知道在这个数组中有两个元素是我不想要的。所以我声明了另一个大小为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 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]
我一直在使用foor循环,但由于它使用相同的索引,它在第二个数组中留下了空格,无法到达结尾 在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