none
C#程式問題 RRS feed

  • 一般討論

  • 小弟最近剛開始在研讀C#語言,才剛學到資料型態轉換跟運算符號,還沒學到判斷跟迴圈,書上有題練習題不太會,總平均成績(須包含小數點),取全科目中最高分印出來(不用計科目),請求版上大大求助,可以的話煩請大大詳細說明該程式碼的用法,謝謝

    題目是說

    使用者輸入 國文 英文 數學三科成績,程式算出三顆加總以及平均分數(包含小數點),記下最高分的成績,得到結果印出螢幕上(不用計科目),試著盡量減少變數使用量達到題目要求


    這是我打的程式碼,

    ///////////////////////////////////////////////////////////////////////////////////////////////

    using System;


        class Program
        {
           public static void Main()
            {

                int CH, EN, TW;



                Console.WriteLine("輸入國語成績:");
                CH = int.Parse(Console.ReadLine());

                Console.WriteLine("輸入英文成績:");
                EN = int.Parse(Console.ReadLine());

                Console.WriteLine("輸入數學成績:");
                TW = int.Parse(Console.ReadLine());


                Console.WriteLine("總分數為:"+(CH+EN+TW));

                Console.WriteLine("總平均為:" + (CH + EN + TW)/3);




            }
        }


    ///////////////////////////////////////////////////////////////////////////////////////////////
    2013年10月16日 上午 05:51

所有回覆

  • 給你提示——最高分成績:

    先任意兩個科目比較,取出最大值;然後再把最大值和第三個科目成績比較,輸出即可。

    另外小數點問題請把國語、數學、外語成績從int改為double;然後用Double.Parse方法。


    Click For donating:Free Rice For the poor
    For spamming-sender issues, you can either report it at Microsoft Spamming Issue, or just find "Report Spam Here+Number" at Forum Issue;You can also find "Verify Your Account+Number" at "Forum Issue", where you can submit to be confirmed to paste links or images.
    For more things to talk about? StackOverFlow is your choice.

    • 已編輯 ThankfulHeart 2013年10月16日 上午 06:05 改變說明
    2013年10月16日 上午 05:58
  • 您可以宣告一個陣列存放三個科目的成績:

    float[] arr = new float[2];

    arr[0]=int.Parse(Console.ReadLine());//國文

    arr[1]=int.Parse(Console.ReadLine());//英文

    arr[2]=int.Parse(Console.ReadLine());//數學

    計算總分用:arr.Sum()

    計算平均用:arr.Average()

    計算最高分用:arr.Max()

    2013年10月16日 上午 07:51
  • 同樣的三科...

    [Access]資料庫 SQL 語法範例


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2013年10月16日 下午 12:16
  • 我假設一下, 資料是來自於使用者輸入, 所以加入一個變數叫 max 好了, 初始值是 0

    每次都要輸入一個學生的三科成績, 輸入完就加總, 把加總和 max 比較, 如果加總比 max 大則替換掉 max

    所以 max 一定永遠保持最大值.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 <br/> <a target="_blank" href="http://www.bplan.com.tw/chunfeng/front/bin/ptlist.phtml?Category=103591"><img border="0" src="http://files.dotblogs.com.tw/billchung/1007/20107414497912.gif" width="200" height="67"></a>

    2013年10月16日 下午 01:29
    版主
  • 小弟 寫出來了 用三元運算子寫找出最高分 

    大大說的方法也適用三元運算子寫嗎

            double CH, EN, TW;
            int a,f;


            Console.WriteLine("輸入國語成績:");
            CH = double.Parse(Console.ReadLine());

            Console.WriteLine("輸入英文成績:");
            EN = double.Parse(Console.ReadLine());

            Console.WriteLine("輸入數學成績:");
            TW = double.Parse(Console.ReadLine());

            Console.WriteLine("總分數為:" + (CH + EN + TW));

            Console.WriteLine("總平均為:" + (CH + EN + TW) / 3);




            int b = (int)CH;  //double轉int
            int c = (int)EN;
            int d = (int)TW;

            a = b > c ? b : c; //三元運算 找出最高分
            f = a > d ? a : d;
            Console.WriteLine("最高分"+f);
            Console.ReadLine();


    2013年10月16日 下午 03:26
  • 我個人比較傳統, 通常用 if () { } , 而不用三元運算子.

    不過你的 f= a>d ? a:d; 應該是 f = a>f ? a:f  吧


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 <br/> <a target="_blank" href="http://www.bplan.com.tw/chunfeng/front/bin/ptlist.phtml?Category=103591"><img border="0" src="http://files.dotblogs.com.tw/billchung/1007/20107414497912.gif" width="200" height="67"></a>

    2013年10月16日 下午 03:52
    版主
  • 抱歉, 整個誤會你的問題.

    如果你是要比較個人的 國英數三科哪一個最高分, 你的寫法是對的.

    不過應該可以不要用 f 這個變數

    直接 a= a > d ? a : d 就好


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 <br/> <a target="_blank" href="http://www.bplan.com.tw/chunfeng/front/bin/ptlist.phtml?Category=103591"><img border="0" src="http://files.dotblogs.com.tw/billchung/1007/20107414497912.gif" width="200" height="67"></a>

    2013年10月17日 上午 05:19
    版主
  • 使用三個變數
        double chtScore, engScore, mathScore;
        Console.WriteLine("輸入國語成績:");
        chtScore = Double.Parse(Console.ReadLine());
    
         Console.WriteLine("輸入英文成績:");
         engScore = Double.Parse(Console.ReadLine());
    
         Console.WriteLine("輸入數學成績:");
         mathScore = Double.Parse(Console.ReadLine());
    
         Console.WriteLine(string.Format("總分數為:{0}", chtScore + engScore + mathScore));
    
         Console.WriteLine(string.Format("總平均為:{0:F3}", (chtScore + engScore + mathScore) / 3));
    
         Console.WriteLine(string.Format("最高分:{0}", chtScore > engScore ? (chtScore > mathScore ? chtScore : mathScore) : (engScore > mathScore ? engScore : mathScore)));
    
         Console.ReadLine();


    以下為簽名檔,如果你愛拉椅子坐那就是你的問題。
    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度

    2013年10月17日 下午 01:44