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

回答編集履歴

4

実行例追記

2020/01/12 00:59

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -1,5 +1,6 @@
1
1
  古いコンパイラだと `int x[n];` で配列確保できないです。
2
2
  新しいコンパイラを使ってください。
3
+ GCC 7.4.0 では以下のプログラムが動作しました。
3
4
 
4
5
  ```c
5
6
  #include <stdio.h>
@@ -26,4 +27,22 @@
26
27
  printf("x[%d]=%d\n",i,x[i]);
27
28
  }
28
29
  }
30
+ ```
31
+
32
+ 実行結果
33
+
34
+ ```
35
+ 配列の要素数を入力してください>>>0
36
+ 配列の要素数を入力してください>>>-3
37
+ 配列の要素数を入力してください>>>5
38
+ 1番目の要素に代入する数字を入力してください>>>9
39
+ 2番目の要素に代入する数字を入力してください>>>1
40
+ 3番目の要素に代入する数字を入力してください>>>1
41
+ 4番目の要素に代入する数字を入力してください>>>7
42
+ 5番目の要素に代入する数字を入力してください>>>4
43
+ x[0]=9
44
+ x[1]=1
45
+ x[2]=1
46
+ x[3]=7
47
+ x[4]=4
29
48
  ```

3

プログラム修正

2020/01/12 00:59

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -8,19 +8,17 @@
8
8
  {
9
9
  int n;
10
10
 
11
+ do {
11
- printf("配列の要素数を入力してください>>>");
12
+ printf("配列の要素数を入力してください>>>");
12
- scanf("%d",&n);
13
+ scanf("%d",&n);
14
+ } while (n < 1);
13
15
 
14
- int x[n]; //サイズが0の配列を割り当てまたは宣言しようとしました
15
- //定数式が必要です。
16
+ int x[n];
16
- //式には定数値が必要です。
17
17
 
18
18
  for (int i = 0; i < n; i++)
19
19
  {
20
- do {
21
- printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
20
+ printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
22
- scanf("%d",&x[i]);
21
+ scanf("%d",&x[i]);
23
- } while (x[i] < 0);
24
22
  }
25
23
 
26
24
  for (int i = 0; i < n; i++)

2

説明追記

2020/01/12 00:54

投稿

shiracamus
shiracamus

スコア5406

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

1

正の整数に制限

2020/01/12 00:50

投稿

shiracamus
shiracamus

スコア5406

answer CHANGED
@@ -14,8 +14,10 @@
14
14
 
15
15
  for (int i = 0; i < n; i++)
16
16
  {
17
+ do {
17
- printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
18
+ printf("%d番目の要素に代入する数字を入力してください>>>",i+1);
18
- scanf("%d",&x[i]);
19
+ scanf("%d",&x[i]);
20
+ } while (x[i] < 0);
19
21
  }
20
22
 
21
23
  for (int i = 0; i < n; i++)