如何在C中复制数组元素?

如何在C中复制数组元素?,c,C,到目前为止我的代码 #include <stdio.h> main() { FILE *myFile; myFile = fopen("newindex.dat.txt", "r"); float n1[12]; float n2[12]; float n3[12]; float p[36]; int i; for (i = 0; i < 12; i++) { fscanf(myFil

到目前为止我的代码

#include <stdio.h>
main()
{

    FILE *myFile;
    myFile = fopen("newindex.dat.txt", "r");

    float n1[12];
    float n2[12];
    float n3[12];
    float p[36];
    int i;

    for (i = 0; i < 12; i++)
    {
        fscanf(myFile, "%f %f %f", &n1[i], &n2[i], &n3[i]);
    }

}  

0.0 0.0 1.20
1.0 0.0 1.20
2.0 0.0 1.20
3.0 0.0 1.20
0.0 1.0 1.40
1.0 1.0 1.40
2.0 1.0 1.42
3.0 1.0 1.48
0.0 2.0 1.50
1.0 2.0 1.50
2.0 2.0 1.52
3.0 2.0 1.54

如何做到这一点?

因为,这个问题似乎不太清楚,我假设您希望n3数组位于p[]数组中,并且要重复三次。 您可以通过编辑for循环轻松完成此操作:

for (i = 0; i < 12; i++)
    {
        fscanf(myFile, "%f %f %f", &n1[i], &n2[i], &n3[i]);
        p[i]=p[i+12]=p[i+24]=n3[i];
    }
(i=0;i<12;i++)的

{
fscanf(myFile,“%f%f%f”、&n1[i]、&n2[i]、&n3[i]);
p[i]=p[i+12]=p[i+24]=n3[i];
}

如果我对您的问题的解释是错误的,您可能会知道如何做到这一点,即p[i],p[i+元素的数量],p[i=2*元素的数量]将保持不变。

因为这个问题似乎不太清楚,我假设您希望n3数组位于p[]数组中,并重复三次。 您可以通过编辑for循环轻松完成此操作:

for (i = 0; i < 12; i++)
    {
        fscanf(myFile, "%f %f %f", &n1[i], &n2[i], &n3[i]);
        p[i]=p[i+12]=p[i+24]=n3[i];
    }
(i=0;i<12;i++)的

{
fscanf(myFile,“%f%f%f”、&n1[i]、&n2[i]、&n3[i]);
p[i]=p[i+12]=p[i+24]=n3[i];
}

如果我对你的问题的解释是错误的,你可能会知道如何做到这一点,即p[i],p[i+元素的数量],p[i=2*元素的数量]将保持不变。

如果你想将第三列的每个元素在数组p中复制3次,你可以这样做:

for (i = 0, k = 0; i < 12; i++)
{
    fscanf(myFile, "%f %f %f", &n1[i], &n2[i], &n3[i]);
    p[k++] = n3[i];
    p[k++] = n3[i];
    p[k++] = n3[i]; 
}
for(i=0,k=0;i<12;i++)
{
fscanf(myFile,“%f%f%f”、&n1[i]、&n2[i]、&n3[i]);
p[k++]=n3[i];
p[k++]=n3[i];
p[k++]=n3[i];
}

如果要将第三列中的每个元素复制3次,可以执行以下操作:

for (i = 0, k = 0; i < 12; i++)
{
    fscanf(myFile, "%f %f %f", &n1[i], &n2[i], &n3[i]);
    p[k++] = n3[i];
    p[k++] = n3[i];
    p[k++] = n3[i]; 
}
for(i=0,k=0;i<12;i++)
{
fscanf(myFile,“%f%f%f”、&n1[i]、&n2[i]、&n3[i]);
p[k++]=n3[i];
p[k++]=n3[i];
p[k++]=n3[i];
}

所说的“三次复制第三列元素”是指
0.0.0 1.20 0.0 0.0 1.20 0.0 0 0.0 1.20
还是
0.0 0 0.0 1.20 1.20 1.20
?你能澄清三次复制第三列元素的意思吗?@hhyder每个元素出现三次,1.20 1.20 1.20等等on@Bob__不,1.20 1.20 1.20。。。。1.54 1.54 1.54,36所有“复制第三列元素三次”是指
0.0.0 1.20 0.0 0.0 1.20 0.0 0 0.0 1.20
还是
0.0 0 0.0 1.20 1.20 1.20
?你能解释一下复制第三列元素三次是什么意思吗?@hhyder每个元素出现三次,1.20 1.20 1.20等等on@Bob__不 1.20 1.20 1.20 .... 1.54 1.54 1.54,36 alltogetherNo,看看我的edit.int k=0;对于(i=0;i<12;i++){fscanf(myFile,“%f%f%f”、&n1[i]、&n2[i]、&n3[i]);p[k++]=n3[i];p[k++]=n3[i];p[k++]=n3[i];}否,请查看我的edit.int k=0;对于(i=0;i<12;i++){fscanf(myFile,“%f%f%f”、&n1[i]、&n2[i]、&n3[i]);p[k++]=n3[i];p[k++]=n3[i];p[k++]=n3[i];}