質問編集履歴

4

入力部分のscanfの後ろのa[i]を&a[i]に修正しました

2018/08/31 17:01

投稿

gregolio122
gregolio122

スコア14

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  for(i=0;i<j;i++){
20
20
 
21
- scanf("%d",a[i]);
21
+ scanf("%d",&a[i]);
22
22
 
23
23
  }
24
24
 

3

こちらの意図すること の一部を修正しました

2018/08/31 17:01

投稿

gregolio122
gregolio122

スコア14

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  ### こちらの意図すること
40
40
 
41
- ただ入力された数値を表示するだけのプログラムに配列変数用いていたり、その配列要素数を20にしていたり、謎のループを用いていたりする部分には追求しないということで一つお願いいたします。
41
+ ただ入力された数値を表示するだけのプログラムですが、意図的for文使ったりしています。
42
42
 
43
43
 
44
44
 
@@ -52,12 +52,22 @@
52
52
 
53
53
  そして、出力部分でもforループを使っていて、これも上記同様の条件により、ループ内処理が実行されるのは1回のみ。
54
54
 
55
- そしてi=0という初期化をしているので、出力結果はa[0]、つまり1になるというものなのですが、
55
+ そしてi=0という初期化をしているので、出力結果はa[i]すなわちa[0]の値なので**つまり1になる**というものなのですが、
56
56
 
57
57
  実際の出力結果は「326482」など、こちらが意図していたものとは違うものとなってしまいます。
58
58
 
59
59
  この原因が検討もつきません。
60
60
 
61
+ また、出力部分のprintfを
62
+
63
+ printf("\n%d",**a[i]**);
64
+
65
+ から
66
+
67
+ printf("\n%d",**a[0]**);
68
+
69
+ に書き換えてみても同様です。
70
+
61
71
 
62
72
 
63
73
  どなたか心当たりのある方は教えていただけますと助かります。

2

コードの修正と、こちらの意図することの一部文章の修正

2018/08/31 16:59

投稿

gregolio122
gregolio122

スコア14

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,8 @@
12
12
 
13
13
  int a[20],i,j;
14
14
 
15
+ /*入力受付部分*/
16
+
15
17
  scanf("%d",&j);
16
18
 
17
19
  for(i=0;i<j;i++){
@@ -20,11 +22,11 @@
20
22
 
21
23
  }
22
24
 
23
-
25
+ /*出力部分*/
24
26
 
25
27
  for(i=0;i<j;i++){
26
28
 
27
- printf("\n%d",a[0]);
29
+ printf("\n%d",a[i]);
28
30
 
29
31
  }
30
32
 
@@ -44,13 +46,15 @@
44
46
 
45
47
  「1 1」という入力をした場合
46
48
 
47
- j=1となり、forループ内の処理は「i=0」「i<1」という条件より1回のみ実行される。
49
+ j=1となり、入力部分のforループ内の処理は「i=0」「i<1」という条件より1回のみ実行される。
48
50
 
49
51
  そして、この時点でi=0なのでa[0]に1が代入される。
50
52
 
51
- なので、出力結果は「1」になるとものですが、
53
+ そして、出力部分でもforループを使ってて、これ上記同様条件により、ループ内処理が実行されるは1回のみ。
52
54
 
55
+ そしてi=0という初期化をしているので、出力結果はa[0]、つまり1になるというものなのですが、
56
+
53
- 実際の出力結果「326482」など、期待したものとは違うものとなってしまいます。
57
+ 実際の出力結果「326482」など、こちらが意図ていたものとは違うものとなってしまいます。
54
58
 
55
59
  この原因が検討もつきません。
56
60
 

1

コードを書き間違えていたので修正しました

2018/08/31 16:53

投稿

gregolio122
gregolio122

スコア14

test CHANGED
File without changes
test CHANGED
@@ -14,13 +14,19 @@
14
14
 
15
15
  scanf("%d",&j);
16
16
 
17
- for(i=0;i<j,i++){
17
+ for(i=0;i<j;i++){
18
18
 
19
19
  scanf("%d",a[i]);
20
20
 
21
21
  }
22
22
 
23
+
24
+
25
+ for(i=0;i<j;i++){
26
+
23
- printf("\n%d",a[0]);
27
+ printf("\n%d",a[0]);
28
+
29
+ }
24
30
 
25
31
  }
26
32