Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在数组中插入元素_C_Arrays - Fatal编程技术网

C 在数组中插入元素

C 在数组中插入元素,c,arrays,C,Arrays,我有以下变量: val1 = 24.00 val2 = 71.3 val3 = 9.30 val4 = 45.3 double array[4]; array[0] = val1 array[1] = val2 array[2] = val3 array[3] = val4 我想把它们插入一个数组中 array[0] = 24.00 array[1] = 71.3 array[2] = 9.30

我有以下变量:

    val1 = 24.00
    val2 = 71.3
    val3 = 9.30
    val4 = 45.3
    double array[4];

    array[0] = val1
    array[1] = val2
    array[2] = val3
    array[3] = val4
我想把它们插入一个数组中

    array[0] = 24.00
    array[1] = 71.3
    array[2] = 9.30
    array[3] = 45.3
有没有办法做到这一点。很抱歉,我试图了解C中的数组,到目前为止,我只知道这些:

    double array[5];

    for (i=0; i<5; i++) {
        array[i] = val1
        array[i] = val2
        array[i] = val3
        array[i] = val4
    }
双数组[5];

对于(i=0;i您已经做了一半,除了您必须使用变量名更改您的值:

array[0] = val1;
array[1] = val2;
array[2] = val3;
array[3] = val4;
如果将
val
变量作为数组,则可以使用memcpy或for循环来执行此操作

例如:

 double val[] = {24.00, 71.3, 9.30, 45.3};
 double array[4];
 memcpy(array, val, 4 * sizeof(double));
此外,这不是这样做的,因为您覆盖了以前编写的内容:

double array[5];

for (i=0; i<5; i++) {
    array[i] = val1;
    array[i] = val2;
    array[i] = val3;
    array[i] = val4;
}
双数组[5];

对于(i=0;i您已经做了一半,除了您必须使用变量名更改您的值:

array[0] = val1;
array[1] = val2;
array[2] = val3;
array[3] = val4;
如果将
val
变量作为数组,则可以使用memcpy或for循环来执行此操作

例如:

 double val[] = {24.00, 71.3, 9.30, 45.3};
 double array[4];
 memcpy(array, val, 4 * sizeof(double));
此外,这不是这样做的,因为您覆盖了以前编写的内容:

double array[5];

for (i=0; i<5; i++) {
    array[i] = val1;
    array[i] = val2;
    array[i] = val3;
    array[i] = val4;
}
双数组[5];

对于(i=0;i可以使用循环,也可以指定每个元素,但不要混合它们。 如果值位于多个变量中:

    val1 = 24.00
    val2 = 71.3
    val3 = 9.30
    val4 = 45.3
    double array[4];

    array[0] = val1
    array[1] = val2
    array[2] = val3
    array[3] = val4
如果它们位于另一个阵列中:

double array[4];

double val[] = {24.00, 71.3, 9.30, 45.3};
for (i=0; i<4; i++) {
    array[i] = val[i]
}
双数组[4];
双val[]={24.00,71.3,9.30,45.3};

对于(i=0;i可以使用循环,也可以指定每个元素,但不要混合它们。 如果值位于多个变量中:

    val1 = 24.00
    val2 = 71.3
    val3 = 9.30
    val4 = 45.3
    double array[4];

    array[0] = val1
    array[1] = val2
    array[2] = val3
    array[3] = val4
如果它们位于另一个阵列中:

double array[4];

double val[] = {24.00, 71.3, 9.30, 45.3};
for (i=0; i<4; i++) {
    array[i] = val[i]
}
双数组[4];
双val[]={24.00,71.3,9.30,45.3};

对于(i=0;i您的示例代码将在每个元素中以val4结尾,因为括号中的代码在每次迭代中运行一次,val4是每次迭代的最终语句。离散变量中的变量使您很难在循环中执行所要求的操作。我担心您最好能做的是在演示时手动分配它们nstrated。您可以使用预处理器宏来实现这一点,但这取决于编译器,而且非常难看。

您的示例代码将在每个元素中以val4结尾,因为括号中的代码每次迭代运行一次,而val4是每次迭代的最终语句。离散变量中的变量使其非常不同我不想在循环内部执行你要求的操作。恐怕你能做的最好的事情就是像你演示的那样手动分配它们。你可以用预处理器宏来实现这一点,但这取决于编译器,而且非常难看。

你试过了吗?你甚至不需要
for
循环。你只需要
数组[0]就可以了=24.00
等等,正如你在问题的第二部分中提到的。你已经得到了答案。你的第二部分是正确的。你试过了吗?你甚至不需要
来进行
循环。你只需要
数组[0]就可以了=24.00
等等,正如你在问题的第二部分中提到的。你已经有了答案。你的第二部分是正确的。