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

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

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

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

Q&A

解決済

1回答

4923閲覧

1から10までの乱数を発生させ、偶数なら、★を、奇数なら☆を、それぞれ発生した数の文だけ表示するプログラムの作成がうまくいかない

zoru76

総合スコア2

C#

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

0グッド

0クリップ

投稿2021/02/06 07:29

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
C#初心者です。
現在、一週間で身につくC#言語の基本というサイトの4日目の課題を取り組んでいるのですがわからない問題があったため質問させていただきます。

問題:
1から10までの乱数を発生させ、偶数なら、★を、奇数なら☆を、それぞれ発生した数の文だけ表示するプログラムを作りなさい。

期待される実行結果の例①(偶数が発生した倍:この場合は4)
★★★★

期待される実行結果の例②(奇数が発生した場合:この場合は7)
☆☆☆☆☆☆☆

発生している問題・エラーメッセージ

現象:偶数でも奇数でも"★"で表示されてしまう。

該当のソースコード

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace prob4_14
{
class Program
{
static void Main(string[] args)
{
//1から10までの乱数を発生させ、偶数なら、★を、奇数なら☆を、
//それぞれ発生した数の文だけ表示するプログラムを作りなさい。
int a;
int even = 0;
int odd = 0;

//乱数の初期設定 Random rnd = new Random(); for (a = 0; a <= 1; a++) { //1以上11未満の乱数を発生させる(1から10まで) int num = rnd.Next(1, 11); if (a % 2 == 0) { even++; for (a = 0; a < num; a++) { Console.Write("★"); } break; } else if (a % 2 == 1) { odd++; for (a = 0; a < num; a++) { Console.Write("☆"); } break; } } Console.WriteLine(""); } }

}

試したこと

いろいろ検索してみたのですが解決できませんでした。
どなたか間違っているところや、改善したほうが良いところなどわかる方おりましたらご教授いただけますと幸いです。

宜しくお願いいたします。

補足情報(FW/ツールのバージョンなど)

VisualStudio2019

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

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

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

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

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

guest

回答1

0

ベストアンサー

int num = rnd.Next(1, 11);

if (a % 2 == 0)

乱数はnumに格納してるけど、奇数偶数判定してるのは a ってこれはなんでしょう

投稿2021/02/06 07:38

y_waiwai

総合スコア88042

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

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

zoru76

2021/02/06 07:45

発生した値を格納するためだと思ってaにしました。 numをaのところに入れてしまうとエラーになってしまうのでいれてみたのですが、これは不要なのでしょうか・・・
y_waiwai

2021/02/06 07:49

乱数を発生させて、それを奇数偶数判定するんでは。 aには0が入ってるので、そりゃ偶数判定になりますよ
zoru76

2021/02/06 07:56

ありがとうございます! if (num % 2 == 0)  に変えたらうまくいきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問