3
0
paiza×Qiita記事投稿キャンペーン「プログラミング問題をやってみて書いたコードを投稿しよう!」

paiza [C020:残り物の量] C# 書いたコードをコピペしてみた、解説してみた

Last updated at Posted at 2024-07-19

paiza×Qiita記事投稿キャンペーン「プログラミング問題をやってみて書いたコードを投稿しよう!」

Qiita2回目の投稿

同キャンペーンの開催に伴い、C# で書いたコードをコピペしてみた、解説してみた

問題

下記画像は上記問題のリンク先から一部抜粋。
image.png
image.png

書いたコード

using System;
class Program
{
    static void Main()
    {
        var array = Console.ReadLine().Split();
        var m = double.Parse(array[0]);        //ある生鮮食品の仕入れ量[kg]
        var p = double.Parse(array[1]);        //生のまま販売して売れた%[%]
        var q = double.Parse(array[2]);        //売れ残った量のうち売れた%[%]
    
        var psales = m * (p / 100);            //生のまま販売して売れた量[kg]
        var qsales = (m - psales) * (q / 100); //売れ残った量のうち売れた量[kg]
        var result = m - psales - qsales;      //最終的に売れ残った量[kg]
        
        Console.WriteLine(result);
    }
}

解説

var array = Console.ReadLine().Split();

image.png

        var array = Console.ReadLine().Split();
  • 上記記載をすることで、{1,80,40}の要素が入ったarrayという一次元配列ができる。
  • var arrayとすることで、arrayに代入する要素によって、データ型が数字や、文字列、小数点型、配列に自動で変化する。
  • .Split()は、半角スペース区切りを取り除き、個別の要素{1,80,40}に分割する。

var m = double.Parse(array[0]);

        var m = double.Parse(array[0]);        //ある生鮮食品の仕入れ量[kg]
        var p = double.Parse(array[1]);        //生のまま販売して売れた%[%]
        var q = double.Parse(array[2]);        //売れ残った量のうち売れた%[%]
  • arrayの要素をm,p,qにそれぞれ代入する。
  • 出力結果は小数点を表示する必要があることから、double.Parse();でarray[0]などをdouble型に変換する。
    image.png

各種計算

        var psales = m * (p / 100);            //生のまま販売して売れた量[kg]
        var qsales = (m - psales) * (q / 100); //売れ残った量のうち売れた量[kg]
        var result = m - psales - qsales;      //最終的に売れ残った量[kg]
        
        Console.WriteLine(result);
  • var psalesなどと、varをつけることで、double型の値が代入された、psales、qsales、resultはすべてvar型からdouble型になる。
  • psale・・・pを100で割りmに掛け算することで、生のまま販売して売れた量がわかる。
  • qsale・・・qを100で割り(m-psales)に掛け算することで、売れ残った量(m-psales)のうち売れた量がわかる。
  • Console.WriteLine();でresult(最終的に売れ残った量)を出力する。

感想など

  • Qiitaに記事を書くことで、自分の知識を言語化する難しさを感じましたが、知識の整理に役立つと思いました。
  • paizaのレベルアップ問題集は全ての言語の解説があるわけではないので、この投稿が解答の参考になれば幸いです。私のpaizaランクはBランクです。Aランク目指し精進します。
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0