回答編集履歴

4

実行例追記

2020/01/12 00:59

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,6 +1,8 @@
1
1
  古いコンパイラだと `int x[n];` で配列確保できないです。
2
2
 
3
3
  新しいコンパイラを使ってください。
4
+
5
+ GCC 7.4.0 では以下のプログラムが動作しました。
4
6
 
5
7
 
6
8
 
@@ -55,3 +57,39 @@
55
57
  }
56
58
 
57
59
  ```
60
+
61
+
62
+
63
+ 実行結果
64
+
65
+
66
+
67
+ ```
68
+
69
+ 配列の要素数を入力してください>>>0
70
+
71
+ 配列の要素数を入力してください>>>-3
72
+
73
+ 配列の要素数を入力してください>>>5
74
+
75
+ 1番目の要素に代入する数字を入力してください>>>9
76
+
77
+ 2番目の要素に代入する数字を入力してください>>>1
78
+
79
+ 3番目の要素に代入する数字を入力してください>>>1
80
+
81
+ 4番目の要素に代入する数字を入力してください>>>7
82
+
83
+ 5番目の要素に代入する数字を入力してください>>>4
84
+
85
+ x[0]=9
86
+
87
+ x[1]=1
88
+
89
+ x[2]=1
90
+
91
+ x[3]=7
92
+
93
+ x[4]=4
94
+
95
+ ```

3

プログラム修正

2020/01/12 00:59

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -18,17 +18,17 @@
18
18
 
19
19
 
20
20
 
21
- printf("配列の要素数を入力してください>>>");
21
+ do {
22
22
 
23
+ printf("配列の要素数を入力してください>>>");
24
+
23
- scanf("%d",&n);
25
+ scanf("%d",&n);
26
+
27
+ } while (n < 1);
24
28
 
25
29
 
26
30
 
27
- int x[n]; //サイズが0の配列を割り当てまたは宣言しようとしました
28
-
29
- //定数式が必要です。
31
+ int x[n];
30
-
31
- //式には定数値が必要です。
32
32
 
33
33
 
34
34
 
@@ -36,13 +36,9 @@
36
36
 
37
37
  {
38
38
 
39
- do {
39
+ printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
40
40
 
41
- printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
42
-
43
- scanf("%d",&x[i]);
41
+ scanf("%d",&x[i]);
44
-
45
- } while (x[i] < 0);
46
42
 
47
43
  }
48
44
 

2

説明追記

2020/01/12 00:54

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,3 +1,9 @@
1
+ 古いコンパイラだと `int x[n];` で配列確保できないです。
2
+
3
+ 新しいコンパイラを使ってください。
4
+
5
+
6
+
1
7
  ```c
2
8
 
3
9
  #include <stdio.h>

1

正の整数に制限

2020/01/12 00:50

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -30,9 +30,13 @@
30
30
 
31
31
  {
32
32
 
33
- printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
33
+ do {
34
34
 
35
+ printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
36
+
35
- scanf("%d",&x[i]);
37
+ scanf("%d",&x[i]);
38
+
39
+ } while (x[i] < 0);
36
40
 
37
41
  }
38
42