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

时间:2016-05-19 20:55:53

标签: 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(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

我需要复制第三列元素三次,就像这样。

1.20
1.20
1.20
...
...
1.54
1.54
1.54

怎么做?

2 个答案:

答案 0 :(得分:1)

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

(defun flyspell-ignore-comments ()
  "Used for 'flyspell-generic-check-word-predicate' to ignore comments."
  (not (string-match "^ *#" (thing-at-point 'line t))))
(put 'git-commit-mode 'flyspell-mode-predicate 'flyspell-ignore-comments)

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

答案 1 :(得分:1)

如果你想将第三列的每个元素放在数组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]; 
}