質問編集履歴

4

完成

2016/04/14 15:46

投稿

ryo-dev
ryo-dev

スコア437

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,91 @@
1
+ `解決`しました。プログラムは以下です。アドバイスをくださった方ありがとうございました。とても感謝しています。
2
+
3
+
4
+
5
+ ```C++
6
+
7
+ #include "stdafx.h"
8
+
9
+ #include <iostream>
10
+
11
+
12
+
13
+ using namespace std;
14
+
15
+
16
+
17
+ int main()
18
+
19
+ {
20
+
21
+ int x;
22
+
23
+ cout << "入力した数の応じてピラミッドを作ります。\n";//プログラムの説明
24
+
25
+
26
+
27
+ do { //繰り返し開始
28
+
29
+ cout << "数字を入力してください。"; //入力を促す
30
+
31
+ cin >> x; //入力してもらう
32
+
33
+ } while (x <= 0); //入力した数字が1より大きければループからぬけ出す
34
+
35
+
36
+
37
+ for (int i = 1; i <= x; i++) { //周回(改行)のfor文
38
+
39
+ for (int j = 0; j <= x - 1 - i; j++) //空白を作る
40
+
41
+ cout << "_";
42
+
43
+ for (int t = 1; t <= i * 2 - 1 ; t++) //ピラミッドを作る
44
+
45
+ cout << "*";
46
+
47
+ cout << "\n";} //改行
48
+
49
+
50
+
51
+ ::system("pause"); //実行結果をすぐに消さないようにする
52
+
53
+ }
54
+
55
+
56
+
57
+ ```
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+ ============================================================
88
+
1
89
  `追加2`少しアドバイスをもらって、改行をするたびにスペースが1つ減り、☆が2つずつ増えているのがわかりあした。
2
90
 
3
91
  そこでプログラムを書いてみたのですが、毎回空欄が生成されます。これはどうすればいいでしょうか?

3

追加

2016/04/14 15:46

投稿

ryo-dev
ryo-dev

スコア437

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,71 @@
1
+ `追加2`少しアドバイスをもらって、改行をするたびにスペースが1つ減り、☆が2つずつ増えているのがわかりあした。
2
+
3
+ そこでプログラムを書いてみたのですが、毎回空欄が生成されます。これはどうすればいいでしょうか?
4
+
5
+ ```C++
6
+
7
+ #include "stdafx.h"
8
+
9
+ #include <iostream>
10
+
11
+
12
+
13
+ using namespace std;
14
+
15
+
16
+
17
+ int main()
18
+
19
+ {
20
+
21
+ int x;
22
+
23
+ cout << "入力した数の応じてピラミッドを作ります。\n";
24
+
25
+
26
+
27
+ do {
28
+
29
+ cout << "数字を入力してください。";
30
+
31
+ cin >> x;
32
+
33
+ } while (x <= 0);
34
+
35
+ int q = x;
36
+
37
+
38
+
39
+ for (int i = 0; i <= x; i++) {
40
+
41
+ for (int t = 1; t <= i * 2 - 1 ; t++){
42
+
43
+ for (int j = 0; j <= q - 1; j++)
44
+
45
+ cout << "_";
46
+
47
+ cout << "*";
48
+
49
+ }
50
+
51
+ cout << "\n";
52
+
53
+ q--;
54
+
55
+
56
+
57
+ }::system("pause");
58
+
59
+ }
60
+
61
+ ```
62
+
63
+
64
+
65
+ ======================以前========================
66
+
67
+
68
+
1
69
  `追加`です。参考にさせてもらって、じぶんなりに作ってみたんですが、実行すると一行目は入力した数よりひとつ少なく空欄(_)は入り一つ*が入って改行すると成功するのですが、2行目のはじめの空欄を一つ減らしたあとから、ズレが生じます。
2
70
 
3
71
  この解決はどうすればいいのですか?

2

訂正

2016/04/14 14:22

投稿

ryo-dev
ryo-dev

スコア437

test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
 
67
67
 
68
68
 
69
-
69
+ =====================以前==========================
70
70
 
71
71
 
72
72
 

1

追加

2016/04/14 10:25

投稿

ryo-dev
ryo-dev

スコア437

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,75 @@
1
+ `追加`です。参考にさせてもらって、じぶんなりに作ってみたんですが、実行すると一行目は入力した数よりひとつ少なく空欄(_)は入り一つ*が入って改行すると成功するのですが、2行目のはじめの空欄を一つ減らしたあとから、ズレが生じます。
2
+
3
+ この解決はどうすればいいのですか?
4
+
5
+ ```C++
6
+
7
+ #include "stdafx.h"
8
+
9
+ #include <iostream>
10
+
11
+
12
+
13
+ using namespace std;
14
+
15
+
16
+
17
+ int main()
18
+
19
+ {
20
+
21
+ int x;
22
+
23
+ cout << "入力した数の応じてピラミッドを作ります。\n";
24
+
25
+
26
+
27
+ do {
28
+
29
+ cout << "数字を入力してください。";
30
+
31
+ cin >> x;
32
+
33
+ } while (x <= 0);
34
+
35
+ x -= 1;
36
+
37
+ int q = x;
38
+
39
+
40
+
41
+ cout << x << "\n";
42
+
43
+
44
+
45
+ for (int i = 0; i <= x; i++) {
46
+
47
+ for (int t = 0; t <= i; t++){
48
+
49
+ for (int j = 1; j <= q - 1; j++)
50
+
51
+ cout << "_";
52
+
53
+ cout << "*";
54
+
55
+ }
56
+
57
+ cout << "\n";
58
+
59
+ q--;
60
+
61
+ }::system("pause");
62
+
63
+ }
64
+
65
+ ```
66
+
67
+
68
+
69
+
70
+
71
+
72
+
1
73
  入力した数のピラミッドを作る問題を説いています。
2
74
 
3
75
  そこでfor文を使ってやるのですがわかりません。