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

質問編集履歴

4

完成

2016/04/14 15:46

投稿

ryo-dev
ryo-dev

スコア437

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

3

追加

2016/04/14 15:46

投稿

ryo-dev
ryo-dev

スコア437

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

2

訂正

2016/04/14 14:22

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -32,8 +32,8 @@
32
32
  }
33
33
  ```
34
34
 
35
+ =====================以前==========================
35
36
 
36
-
37
37
  入力した数のピラミッドを作る問題を説いています。
38
38
  そこでfor文を使ってやるのですがわかりません。
39
39
  回答を教えて下さい。

1

追加

2016/04/14 10:25

投稿

ryo-dev
ryo-dev

スコア437

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,39 @@
1
+ `追加`です。参考にさせてもらって、じぶんなりに作ってみたんですが、実行すると一行目は入力した数よりひとつ少なく空欄(_)は入り一つ*が入って改行すると成功するのですが、2行目のはじめの空欄を一つ減らしたあとから、ズレが生じます。
2
+ この解決はどうすればいいのですか?
3
+ ```C++
4
+ #include "stdafx.h"
5
+ #include <iostream>
6
+
7
+ using namespace std;
8
+
9
+ int main()
10
+ {
11
+ int x;
12
+ cout << "入力した数の応じてピラミッドを作ります。\n";
13
+
14
+ do {
15
+ cout << "数字を入力してください。";
16
+ cin >> x;
17
+ } while (x <= 0);
18
+ x -= 1;
19
+ int q = x;
20
+
21
+ cout << x << "\n";
22
+
23
+ for (int i = 0; i <= x; i++) {
24
+ for (int t = 0; t <= i; t++){
25
+ for (int j = 1; j <= q - 1; j++)
26
+ cout << "_";
27
+ cout << "*";
28
+ }
29
+ cout << "\n";
30
+ q--;
31
+ }::system("pause");
32
+ }
33
+ ```
34
+
35
+
36
+
1
37
  入力した数のピラミッドを作る問題を説いています。
2
38
  そこでfor文を使ってやるのですがわかりません。
3
39
  回答を教えて下さい。