C# 第二次練習

时移之人發表於2024-12-10

C# 第二次練習

 //            方法
            //1.方法名稱:獨立完成功能的一個多個單詞縮寫,能見名知意即可,比如求單詞平均長度:AverageWordLength
            //2.方法引數:獨立完成事情的條件,求單詞平均長度,那麼條件就是需要給單詞,即:string str
            //3.返回值:做事情的結果:求平均長度,平均長度應該是小數,所以返回值型別為double
            //4.有返回值的方法,在書寫時,首先在方法中宣告一個和返回值型別一樣的變數並賦初值,如:double avgLength = 0,然後返回這個變數:return avgLength,然後功能實現寫在這兩句程式碼中間

            //1.統計一段英文短文中單詞的平均長度
            /*
            string file = textBox1.Text;
            double avg = AverageWordLength(file);
            textBox2.Text = "單詞的平均長度" + avg;
            */

            //2.判斷一個數是否能被3整除但不能被7整除
            //textBox1.Text = "1-100之間能被3整除但不能被7整除的數有:";
            //for (int i = 100; i <= 200; i++)
            //{
            //    if (IsDivide(i))
            //    {
            //        textBox2.Text += i + ",";
            //    }
            //}

            //3.輸入一個字串,統計字串中英文字母和數字字元的個數並輸出
            //Word(textBox1.Text);

            //4.對正整數m求和,其中求和公式為s= 1/2+1/3+…+1/m,方法返回s的值。
            //textBox2.Text = "求和為:"+Sum(int.Parse(textBox1.Text));

            //5.將一個字串中所有英文字元後加一個$字元,並返回處理後的字串。
            //textBox2.Text = "處理後的字串:" +AddDollar(textBox1.Text);

            //6.求s=1/a+1/aa+1/aaa+1/aaaa+1/aaaaa的值
            //textBox2.Text = "計算後:" +Sum1(int.Parse(textBox1.Text));

            //7.判斷一個數是否是完數,返回值為布林型別。一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。
            //textBox2.Text = "是否是完數:" + IsPerfect(int.Parse(textBox1.Text));

            //8.求分數序列:2/1,1/3,3/4,4/7,7/11,11/18...的前10項之和,並返回。
            //textBox2.Text = "前10項之和:" + Sum2();

            //9.求1+1/2!+1/3!+...+1/n!的和,並將和作為返回值返回
            //textBox2.Text = "1+1/2!+1/3!+...+1/n!的和:" + Sum3(int.Parse(textBox1.Text));

            //10.在大獎賽中,有10個評委為參賽的選手打分,分數為1~100分。選手最後得分為:去掉一個最高分和一個最低分後其餘8個分數的平均
            //編寫一個方法,輸入10個選手的分數,返回最後得分。
            string str = textBox1.Text;
            int[] s =str.Split(',').Select(int.Parse).ToArray();
            double avg = LastScore(s);
            textBox2.Text = "最後得分:" + avg;
        }

        //1.統計一段英文短文中單詞的平均長度,單詞之間由若干個空格隔開。
        public double AverageWordLength(string str)
        {//I am a student

            double avgLength = 0;
            string[] words = str.Split(' ');
            double sum = 0;
            for (int i = 0; i < words.Length; i++)
            {
                sum += words[i].Length;
            }
            avgLength = sum / words.Length;
            return avgLength;

        }

        //2.判斷一個數是否能被3整除但不能被7整除
        bool IsDivide(int num)
        {
            bool flag = false;
            if (num % 3 == 0 && num % 7 != 0)
            {
                flag = true;
            }
            return flag;
        }


        //3.輸入一個字串,統計字串中英文字母和數字字元的個數並輸出。要求編寫應用程式,來檢驗方法的正確性。
        public void Word(string str)
        {
            int zimu = 0;
            int shuzi = 0;
            int qita = 0;
            foreach (char s in str)
            {
                if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
                {
                    zimu++;
                }
                else if (s >= '0' && s <= '9')
                {
                    shuzi++;
                }
                else
                {
                    qita++;
                }
            }
            textBox2.Text = "英文字元個數:" + zimu + "數字字元個數:" + zimu + "其他字元個數:" + qita;
            
        }

        //4.對正整數m求和,其中求和公式為s= 1/2+1/3+…+1/m,方法返回s的值。        
        public double Sum(int m)
        {
            double s = 0;
            for (int i = 1; i <= m; i++)
            {
                s += 1.0 / i;
            }
            return s;
        }


        //5.寫一個方法,將一個字串中所有英文字元後加一個$字元,並返回處理後的字串。
        //例如輸入:A1B23CD45,則方法返回值為:A$1B$23C$D$45,要求編寫應用程式,來檢驗方法的正確性。
        public string AddDollar(string str)
        {
            string result = "";
            foreach (char s in str)
            {
                if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
                {
                    result += s + "$";
                }
                else
                {
                    result += s;
                }
            }
            return result;
        }

        //6.寫一個方法,求s=1/a+1/aa+1/aaa+1/aaaa+1/aaaaa的值,其中a是使用者定義的數字。
        //例如1/2+1/22+1/222+1/2222+1/22222(此時共有5個數相加),返回值為和s。
        public double Sum1(int a)
        {
            double s = 0;
            for (int i = 1; i <= a; i++)
            {
                s += 1.0 / (a*xunhuan(i));
            }
            return s;
        }

        public int xunhuan(int n)
        {
            int a = 0;
            string s = 0.ToString();
            for (int i = 1; i <= n; i++)
            {
                s += 1;
            }
            a=int.Parse(s);
            return a;

        }
        
        //7.判斷一個數是否是完數,返回值為布林型別。一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。
        bool IsPerfect(int num)
        {
            int sum = 0;
            for (int i = 1; i <= num / 2; i++)
            {
                if (num % i == 0)
                {
                    sum += i;
                }
            }
            if (sum == num)
                return true;
            else
                return false;
        }

        //8.寫一個方法,求分數序列:2/1,1/3,3/4,4/7,7/11,11/18...的前10項之和,並返回。
        public double Sum2()
        {
            double sum = 0;
            double a = 1;
            double b = 2;
            double temp = 0;
            for (int i = 0; i < 10; i++)
            {
                sum += a / b;
                temp = b;
                b = a + b;
                a = temp;
            }
            return sum;
        }     

        //9.求1+1/2!+1/3!+...+1/n!的和,並將和作為返回值返回
        public double Sum3(int n)
        {
            double sum = 0;
            for (int i = 1; i <= n; i++)
            {
                sum += 1.0 / Factorial(i);
            }
            return sum;
        }  
        public int Factorial(int n)
        {
            int result = 1;
            for (int i = 1; i <= n; i++)
            {
                result *= i;
            }
            return result; 
        }


        //10.在大獎賽中,有10個評委為參賽的選手打分,分數為1~100分。選手最後得分為:去掉一個最高分和一個最低分後其餘8個分數的平均
        //編寫一個方法,輸入10個選手的分數,返回最後得分。
        public double LastScore(int[] scores)
        {

            Array.Sort(scores);
            int max = scores[9];
            int min = scores[0];
            int sum = 0;
            for (int i = 1; i < 9; i++)
            {
                sum += scores[i];
            }
            double avg = (double)sum / 8;
            return avg;
        }

刪除線

引用
*** 分割線 ---