🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Q&A

解決済

2回答

4203閲覧

条件に合った数値の個数を表示させる方法がわかりません

zoru76

総合スコア2

C#

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

0グッド

0クリップ

投稿2021/02/11 17:52

編集2021/02/12 16:50

閲覧ありがとうございます。
C#を学習している初心者です。
以下の条件のプログラムを作成したいのですが、(4)~(6)までの内容の個数の表示方法がわかりません。(0よりも大きい数と0よりも小さい数を出力することはできています・・・)
具体的に知りたい内容としては【個数を表現するための方法】です。
おそらくCountを使用するのではないかとは思うのですが、どうやって使うか、基本的なことがわからないため、教えていただける方おりましたらご教授いただけますと幸いです。
※参考になるサイトや、こうすれば何個あるかを表現できますといったプログラムの書き方(例として)を教えていただけますと嬉しいです。

■開発環境

visual studio 2019
OS:Windows10
コンソールアプリ(.NET Core)

■問題

実行例に習い、以下のプログラムを作りなさい。
(1)長さ5のint型の配列を作成する。
(2)(1)の各要素に、-10から10までの乱数を代入する。
(3)配列の内容をすべて表示する。
(4)0よりも大きい数が何個あるか表示する。
(5)0よりも小さい数が何個あるか表示する。
(6)0が何個あるか表示する。

■実際に書いたプログラム

using

1using System.Collections.Generic; 2using System.Linq; 3using System.Text; 4using System.Threading.Tasks; 5 6namespace prob5_8 7{ 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 //実行例に習い、以下のプログラムを作りなさい。 13 //(1)長さ5のint型の配列を作成する。→○ 14 //(2)(1)の各要素に、-10から10までの乱数を代入する。→○ 15 //(3)配列の内容をすべて表示する。→○ 16 //(4)0よりも大きい数が何個あるか表示する。 17 //(5)0よりも小さい数が何個あるか表示する。 18 //(6)0が何個あるか表示する。 19 20 Random rnd = new Random(); 21 int[] n = new int[5]; 22 int i; 23 24 25 for ( i = 0; i < 5; i++) 26 { 27 n[i] = rnd.Next(-10, 11); 28 } 29 30 //配列の全件を出力する 31 for ( i = 0; i < n.Length; i++) 32 { 33 Console.Write(n[i] + " "); 34 } 35 Console.WriteLine(); 36 37 //0よりも大きい数が何個あるか表示する 38 Console.Write("0より大きい数:"); 39 40 for ( i = 0; i < n.Length; i++) 41 { 42 if ( 0 <= n[i]) 43 { 44 Console.Write(n[i] + "個"); 45 } 46 47 } 48 49 Console.WriteLine(); 50 51 //0よりも小さい数が何個あるか表示する 52 Console.Write("0より小さい数:"); 53 for (i = 0; i < n.Length; i++) 54 { 55 if ( 0 >= n[i]) 56 { 57 Console.Write(n[i] + "個"); 58 } 59 } 60 Console.WriteLine(); 61 } 62 63 private static void printf(string v, int count_a) 64 { 65 throw new NotImplementedException(); 66 } 67 } 68} 69

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/02/11 23:03

コードは ``` と ``` で囲ってくださいインデントされて見やすくなるので。 開発環境を書いてください。
zoru76

2021/02/11 23:11

ありがとうございます。 開発環境の追記と、コードのインデントをいたしました。
退会済みユーザー

退会済みユーザー

2021/02/11 23:14

Visual Studio のバージョンだけでなく、OS, .NET なのか CORE なのかとそのバージョンも書いてください。Windows だろうと思っていたら Mac だったと言うこともありますので。
Zuishin

2021/02/11 23:19

これ以上何を聞きたいのか理解できません。ここまで自分で書けるなら自分でわかるのでは? 自分で書いたんですよね?
退会済みユーザー

退会済みユーザー

2021/02/11 23:26 編集

カウンターを追加し (例: int count;)、for ループの前にゼロにセットし、if 文の中でカウント数を増やし (例: count++;)、for ループを抜けたらカウンターの値を表示するようにしてはいかがですか? あと、ゼロより大きい/小さいというのがゼロを含むのか否かに注意。
退会済みユーザー

退会済みユーザー

2021/02/12 01:01 編集

> 基本的なことがわからないため、教えていただける方おりましたらご教授いただけますと幸いです。 https://docs.microsoft.com/ja-jp/dotnet/csharp/tutorials/ とりあえず、C#チュートリアルを一通り流してみてはどうでしょう。 > こうすれば何個あるかを表現できますといったプログラムの書き方 これを聞くという事は、まず変数が何なのか、どうやって使うのかを理解してないということになってしまうのですが、まずは変数の使い方からしっかり学習し直した方がよいでしょう。こういうところで答えだけ貰って基礎をすっ飛ばすと、後でまた同じような質問をする事になります。 [1-2. 投稿前に検索し、できるところまで自分でやってみましょう] https://teratail.com/help/question-tips#questionTips1-2
zoru76

2021/02/12 16:59

>>SurferOnWwwさん ご指摘・アドバイスありがとうございます。 不慣れなもので、OS等の記載が抜けていたので以後気を付けます。 注意点なども教えてくださり参考になりました。 -------------------- >>Zuishinさん 実際に書いたプログラムに関しては自分で書きました。 以前までに実施した問題から順番に取り組んでいたため、そこまでは書けたのですが、個数を数える問題は初めてだったのでやり方がわからなかった次第です。 -------------------- >>radianさん 参考サイトを教えてくださりありがとうございます。 勉強に活用したいとおもいます。 変数の扱いがしっかりできると他が上手くできそうなので、学習をより重点的に行いたいと思います。
Zuishin

2021/02/12 23:36

> 個数を数える問題は初めてだったのでやり方がわからなかった次第です。 これはあなたの知識だけで解ける問題ですが、考えるのではなく覚えるというハードな方法を選びましたね。 プログラミングできるようになるまでに人の数十倍時間のかかる方法ですが、選ぶのは自由です。 ただし、エンジニア向けの掲示板である teratail で同様の質問を繰り返すのであれば、不愉快な思いを何度もすることになる可能性が高いと思います。 よく勘違いされていますが、ここは素人の質問にプロが親切丁寧に教えるところではなく、エンジニアなどのプログラミングをする人たちが互いに情報交換をする場です。回答者だけではなく、質問者もプログラマーという前提なんですよ。 だから質問フォーマットも、一般では使われないマークダウン形式が採用されていて難しかったでしょう? 知識が足りない初心者の質問は歓迎されますが、変数やループや条件分岐の使い方がわからない上に努力する気もない、あるいは努力したのにわからないというのではプログラマーにはなれません。 プログラマー用の掲示板ではなく、知恵袋などのような一般人向けの掲示板の方が楽だと思いますよ。
guest

回答2

0

Countは使わないです。

//varはintでもOK //変数名が分かりづらい時はZeroLowCountでもOKですがCountメソッドやプロパティを使用しているわけではない var ZeroLow = 0; var ZeroHigh = 0;

みたいに変数を自作してifの度に加算しましょう。
プログラム内で使ってるint i;も変数です。
forループで条件を満たすたびにiの数値を加算して使ってますよね?
これと同じです。

投稿2021/02/12 06:41

編集2021/02/12 06:47
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

zoru76

2021/02/12 17:07

Countを使用しないでも個数の表現ができるのですね。 変数の使い方も教えてくださりありがとうございます。 変数のあたりはまだまだ勉強が足りなさそうなので、こちらも参考にして、いろんな表現方法を学習していきたいと思います。
guest

0

ベストアンサー

csharp

1using System; 2using System.Linq; 3 4public class Program 5{ 6 public static void Main() 7 { 8 var n = new[]{-3,-2,-1,0,1,2,3}; 9 Console.WriteLine($"0 より大は {n.Count(x=>x > 0)} 個"); 10 Console.WriteLine($"0 より小は {n.Count(x=>x < 0)} 個"); 11 Console.WriteLine($"0 は {n.Count(x=>x == 0)} 個"); 12 } 13}

投稿2021/02/12 08:40

papinianus

総合スコア12705

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

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

zoru76

2021/02/12 17:03

こちらを参考にしたところ、個数の表現ができましたのでベストアンサーとさせていただきます。 他にもやり方が多々あるようなので、いろんなやり方を模索できるよう勉強していきたいと思います。 ご回答ありがとうございました。
退会済みユーザー

退会済みユーザー

2021/02/12 22:21

質問者さん> コピペしてできたというだけで中身は全く理解できてないのでは? だとすると、この回答をベストアンサーに選んで終わりにするのは間違ってると思いますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問