回答編集履歴

3

修正

2018/07/05 09:41

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -22,27 +22,23 @@
22
22
 
23
23
  ---
24
24
 
25
- また、max_and_minの第二引数は有効なデータの個数を渡すべきです。
25
+ また、n(データ数)入力はループ前に受け取るべきです。
26
26
 
27
- > ```C
27
+ そうすれば次のように巡回できますね。
28
-
29
- max_and_min(array, n, &max, &min);
30
-
31
- > ```
32
-
33
-
34
-
35
- ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
36
28
 
37
29
  ```C
38
30
 
31
+ for(int i = 0; i < n; ++i) {
32
+
39
- max_and_min(array, i-1, &max, &min); // i個入力したが、最後の0は無視したい
33
+ scanf("%d", &array[i]);
34
+
35
+ }
40
36
 
41
37
  ```
42
38
 
43
39
 
44
40
 
45
- 不正な入力ないと仮定できるなら、0を番兵して配列巡回して良いです。
41
+ nすぎプログラム終了させるの簡単です。
46
42
 
47
43
 
48
44
 

2

追記

2018/07/05 09:41

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -20,6 +20,32 @@
20
20
 
21
21
 
22
22
 
23
+ ---
24
+
25
+ また、max_and_minの第二引数は有効なデータの個数を渡すべきです。
26
+
27
+ > ```C
28
+
29
+ max_and_min(array, n, &max, &min);
30
+
31
+ > ```
32
+
33
+
34
+
35
+ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
36
+
37
+ ```C
38
+
39
+ max_and_min(array, i-1, &max, &min); // i個入力したが、最後の0は無視したい
40
+
41
+ ```
42
+
43
+
44
+
45
+ 不正な入力がないと仮定できるなら、0を番兵にして配列を巡回しても良いです。
46
+
47
+
48
+
23
49
  コードの書き方について
24
50
 
25
51
  ---

1

追記

2018/07/05 09:36

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1 +1,31 @@
1
+ > ```C
2
+
3
+ int i, n, array[NUM], max, min;
4
+
5
+ do {
6
+
7
+ scanf("%d\n", &n);
8
+
9
+ scanf("%d",&array[i]);
10
+
11
+ i++;
12
+
13
+ } while (n != 0);
14
+
15
+ > ```
16
+
17
+
18
+
1
19
  iが初期化されていません。宣言時に0に初期化すると良いでしょう。
20
+
21
+
22
+
23
+ コードの書き方について
24
+
25
+ ---
26
+
27
+ teratailには、上記のようにコードを見やすく表示する機能があります。
28
+
29
+ 質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
30
+
31
+ ![C](4c6e48a3bd0707d89f61b901fd1f8915.gif)