teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追加

2017/01/26 06:17

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -55,4 +55,63 @@
55
55
  }
56
56
  }
57
57
  }
58
+ ```
59
+
60
+ ```c
61
+ #include <stdio.h>
62
+
63
+ typedef struct {
64
+ double x[500][2];
65
+ }dfpos;
66
+
67
+ void expansion(dfpos *p);
68
+ int main(){
69
+ int ret, i = 0;
70
+ FILE *fpa , *fpb;
71
+ char *fnamea = "data.csv";
72
+ char *fnameb = "data2.csv";
73
+ dfpos pos;
74
+ double x, y;
75
+
76
+ fpa = fopen(fnamea , "r");
77
+ if(fpa == NULL){
78
+ printf("ファイルが開けません");
79
+ return -1;
80
+ }
81
+ fpb = fopen(fnameb , "w");
82
+ if(fpb == NULL){
83
+ printf("ファイルが開けません");
84
+ return -1;
85
+ }
86
+
87
+ while((ret = fscanf(fpa, "%lf,%lf", &x , &y)) != EOF){
88
+ pos.x[i][0] = x;
89
+ pos.x[i][1] = y;
90
+ i++;
91
+ }
92
+ expansion(&pos);
93
+
94
+ for(i = 0; i < 500; i++){
95
+ fprintf(fpb, "%lf,%lf\n", pos.x[i][0], pos.x[i][1]);
96
+ }
97
+ fclose(fpa);
98
+ fclose(fpb);
99
+ }
100
+
101
+ void expansion(dfpos *p) {
102
+ double H = 3.5;
103
+ double org = 50;
104
+ double dt = 0.1;
105
+ int nk = 20 , i = 0 , j = 0 , k = 0;
106
+ double vx[500][2];
107
+ for(i = 0; i < 500; i++){
108
+ for(j = 0; j < 2; j++){
109
+ vx[i][j] = H * p->x[i][j];
110
+ p->x[i][j] += org;
111
+ for(k = 0; k < nk; k++){
112
+ p->x[i][j] += vx[i][j] * dt;
113
+ }
114
+ }
115
+ }
116
+ }
58
117
  ```

1

修正

2017/01/26 06:17

投稿

A.Ichi
A.Ichi

スコア4070

answer CHANGED
@@ -48,7 +48,7 @@
48
48
  for(i = 0; i < 500; i++){
49
49
  for(j = 0; j < 2; j++){
50
50
  vx[i][j] = H * (*x0)[i][j];
51
- (*x0)[i][j] = *(x0)[i][j] + org;
51
+ (*x0)[i][j] = (*x0)[i][j] + org;
52
52
  for(k = 0; k < nk; k++){
53
53
  (*x0)[i][j] += vx[i][j] * dt;
54
54
  }