1. 程式人生 > >接觸C#的第9天(for&while迴圈語句)

接觸C#的第9天(for&while迴圈語句)

“最後一點就是堅持,有時候寫這些東西真的很痛苦,很讓人抓狂,但是你一旦你堅持下去,久而久之,你會看到自己的進步,某一天你回過頭去看自己以前寫的文章,當你能夠說出:“寫得真他媽菜”,那麼恭喜你,已經你升級了“。

                                  —— “程式設計師應該堅持寫技術部落格”原文連結:https//blog.csdn.net/d6619309/article/details/52727326

 

31.(20)Fibonacci序列的前二項是0和1,且每一個後繼項是前二項的和。編一個程式,輸出項值不大於100的Fibonacci序列。

            int f1 = 0;//定義首項
            int f2 = 1;//定義第二項
            int f3;//定義第三項
            while (f1 < 100)
            {
                f3 = f1 + f2;
                Console.Write("{0},",f1);
                f1 = f2;
                f2 = f3;//斐波那契數列通項公式
            }
            Console.ReadKey();

 

32.(40)編一個程式,輸入a,b,c的值,求出一元二次方程a*x*x+b*x+c=0的二個實數根。計算二個實數根必須使用Math類中的Sqrt()方法,計算指定數的開方。計算二個實數根,可以用公式(-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a)

 

            double a, b, c;
            double x1, x2;//宣告變數
            Console.WriteLine("請依次輸入一元二次方程ax^2+bx+c=0的三個係數:");//輸出字串
            a = double.Parse(Console.ReadLine());
            b = double.Parse(Console.ReadLine());
            c = double.Parse(Console.ReadLine());//將輸入的字串轉化為相應的資料型別
            if (b * b - 4 * a * c >= 0)
            {
                x1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a);
                x2 = (-b - Math.Sqrt(b * b - 4 * a * c)) / (2 * a);//求根公式
                Console.WriteLine("這個方程的兩個實數根分別是{0},{1}", x1, x2);
            }
            else
                Console.WriteLine("很抱歉,這個方程沒有實數根^_^");
            Console.ReadKey();

33編一個程式,利用while迴圈語句,找出2到100之間的素數。

 

            int i = 2, j;
            bool b;
            Console.WriteLine("2到100中的素數為:");
            while (i <= 100)
            {
                b = true;
                j = 2;
                while (j <= i - 1)
                {
                    if (i % j == 0)
                    {
                        b = false;
                        break;
                    }
                    j++;
                }
                if (b == true) Console.Write("{0}  ", i);
                i++;
            }
            Console.WriteLine();//輸出結果
            Console.ReadKey();

34.(20)編一個程式,用while迴圈語句實現下列功能:有一籃雞蛋,不止一個,有人兩個兩個數,多餘一個,三個三個數,多餘一個,再四個四個地數,也多餘一個,請問這籃雞蛋至少有多少個。

 

            int num = 2;
            while (num < 100)
            {
                if (num % 2 == 1 && num % 3 == 1 && num % 4 == 1)//除以2餘1且除以3餘1且除以4餘1
                {
                    Console.Write("這籃雞蛋至少有{0}個", num);
                    break;//找到這個數就停止執行否則繼續迴圈
                }
                num++;//從2開始逐漸遞增迴圈

35.(20)編一個程式,用for迴圈語句求出1到100之間的奇數之和。

 

            int i, s = 0;
            for (i = 1; i <= 100; i = i + 2)//(初始值,表示式,更新值)
            {
                s = s + i;//累加求和公式
            }
            Console.WriteLine("1-100之間所有奇數的和為{0}", s);//奇數之和等於(5050-(100/2))/2
            Console.ReadKey();

36.(20)編一個程式,利用二重for迴圈語句,打印出九九乘法口訣表。

 

            Console.WriteLine("========================九九乘法口訣表,專為中國兒童設計========================");
            Console.WriteLine(Environment.NewLine);//換行
            int s;
            for (int i = 1; i <= 9; i++)//第一個乘數的迴圈遞增
            {
                for (int j = 1; j <= i; j++)//第二個乘數的迴圈遞增
                {
                    s = i * j;
                    Console.Write("{0}*{1}={2} ", j, i, s);
                }
                Console.WriteLine();//兩個迴圈結束後輸出結果
                
            }
            Console.WriteLine(Environment.NewLine);//換行
            Console.WriteLine("===============================Design By Zyy 2018===============================");
                Console.ReadLine();

37.(20)編一個程式,定義一個有10個元素的陣列,使用for迴圈語句,從鍵盤上輸入10名同學的數學成績,分別求出最高分和最低分,並且求出10名同學的數學平均成績。

 

            double[] math = new double[10];
            Console.WriteLine("請依次輸入10名學生的數學成績:");
            for (int i = 0; i < math.Length; i++)
            {
                math[i] = double.Parse(Console.ReadLine());
            }
            double max = math[0], min = math[0], ave, sum = 0;
            for (int j = 0; j < math.Length; j++)
            {
                if (max < math[j])
                    max = math[j];
                if (min > math[j])
                    min = math[j];
                sum = sum + math[j];
            }
            ave = sum / math.Length;//取平均數
            Console.WriteLine("最高分為{0},最低分為{1},平均分為{2}", max, min, ave);
            Console.ReadKey();

38.(20)編一個程式,利用for迴圈語句,求出1!+2!+3!+...+10!的和。

 

            int s = 0, jc = 1;
            for (int j = 1; j <= 10; j++)
            {
                jc = jc * j;//每個數的階乘
                s = s + jc;
            }
            Console.WriteLine("1!+2!+3!+4!+5!+6!+7!+8!+9!+10!的和為{0}", s);
            Console.ReadLine();

39.(20)編一個程式,用for迴圈語句求出1到100之間的奇數之和,以及偶數之和。

 

            int sumeven = 0, sumodd = 0;//宣告變數:奇數和偶數的和分別為sumodd和sumeven
            for (int even = 0; even <= 100; even = even + 2)//(even初始值,迴圈表示式,更新值)
            {
                sumeven = sumeven + even;
            }
            Console.WriteLine("1-100之間偶數的和為:{0}", sumeven);//輸出
            for (int odd = 1; odd <= 100; odd = odd + 2)
            {
                sumodd = sumodd + odd;
            }
            Console.WriteLine("1-100之間奇數的和為:{0}", sumodd);
            Console.ReadKey();

40.(20)編一個程式,用for迴圈語句,從鍵盤輸入10個實數,分別求出它們中的正數之和,以及負數之和。

            int i;
            double sum1 = 0, sum2 = 0, x;
            for (i = 1; i <= 10; i++)//從輸入的第一個數開始執行,迴圈十次
            {
                Console.Write("請輸入一個實數:");
                x = double.Parse(Console.ReadLine());
                if (x > 0)            //ifelse語句對正數求和和負數求和進行區分
                    sum1 += x;
                else
                    sum2 = sum2+x;    //賦值運算子的兩種寫法
            }                        //大括號內的迴圈體為單次迴圈執行的內容
            Console.WriteLine("正數之和:{0},負數之和:{1}", sum1, sum2);
            Console.ReadKey();

 以上十道題目是對上一篇迴圈語句講解的鞏固,所有知識點在之前均有涉及,出現的一個Math類的方法就是Math.sqrt()用在求解一元二次方程中求平方根。其餘不再贅述,關鍵程式碼均有註釋。

JKCQW!