接触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!

猜你喜欢

转载自blog.csdn.net/weixin_42083728/article/details/82017865
今日推荐