質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

5413閲覧

ランダムに生成される値と同じ数の○を表示させるプログラム

tomorrowny

総合スコア19

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2015/02/24 04:44

編集2015/02/24 04:46

長さ7の整数型配列を生成し、中に1から10までの乱数を代入したあと、実行例にならって、その数の分だけ、○を表示するプログラムを作っています。
とりあえず下のようなコードを書いたのですが、これだと前の数より後の数が小さい場合にそれ以降*が表示されなくなってしまいます。
どのように改善したら7列分○がちゃんと表示されるか分かる方いらっしゃったら教えていただけませんか?
//
実行結果の例
5 10 3 7 1 2 5

○○○○○
○○○○○○○○○○
○○○
○○○○○○○

○○
○○○○○
//

lang

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6 7namespace hairetu 8{ 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Random rnd = new Random(); 14 int[] n = new int[7]; 15 int a=0; 16 int i; 17 for (i = 0; i < 7; i++) 18 { 19 n[i] = rnd.Next(0, 11); 20 } 21 22 for (i = 0; i < n.Length; i++) 23 { 24 Console.Write(n[i] + " "); 25 } 26 27 Console.WriteLine(); 28 29 for (i = 0; i < n.Length; i++) 30 { 31 a = n[i]; 32 for (i = 0; i < a; i++) 33 { 34 Console.Write("*"); 35 } 36 Console.WriteLine(); 37 } 38 39 } 40 } 41} 42

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

変数のスコープはできるだけ狭くするように書いたほうがバグが発生しにくくなります。

スコープを意識したプログラミング

投稿2015/02/24 05:02

編集2015/02/24 05:03
sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

lang

1for (var j = 0; j < a; j++) 2{ 3 Console.Write("*"); 4}

では。
特別な理由もなく外側のforでインクリメントしてる変数を流用したら、当然ループがおかしくなりますよ。

投稿2015/02/24 04:52

takiru

総合スコア130

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問