回答編集履歴

1

内容追記

2018/05/08 02:46

投稿

kazto
kazto

スコア7196

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  }
14
14
 
15
- heikinx = sumx / i;
15
+ heikinx = sumx / i;
16
16
 
17
17
  int j=0;
18
18
 
@@ -33,3 +33,37 @@
33
33
 
34
34
 
35
35
  上記のようにfseekを加えてやると良いと思われます。
36
+
37
+ しかしながら、一度ファイルから読み込んでメモリ上に保持しているものを再度ファイルから読み込むのは冗長かと思います。
38
+
39
+ 以下のように一度目のiを別途保存しておき、二回目のループでそのカウントまで回す、とするのがスマートです。
40
+
41
+
42
+
43
+ ```C++
44
+
45
+ while (fscanf_s(fp1, "%lf", &x[i]) != EOF) {
46
+
47
+ sumx += x[i];
48
+
49
+ i++;
50
+
51
+ }
52
+
53
+ heikinx = sumx / i;
54
+
55
+ int j=0;
56
+
57
+ int linecount = i;
58
+
59
+
60
+
61
+ /* 追加: ファイルディスクリプタを先頭に巻き戻す。 */
62
+
63
+ for(i = 0; i < linecount; i++) {
64
+
65
+ if(heikinx < x[i]) {
66
+
67
+ // 以下略
68
+
69
+ ```