C#循环语句

具体问题如图... 具体问题如图 展开
 我来答
雪飞潇潇
2018-03-11 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:868万
展开全部

参考代码和注释如下:

using System;

namespace LoopDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            Q1();//题目1的代码
            ShuiXianHua();//题目2的代码
            Console.ReadKey();
        }



        private static void Q1() //下面是3个for循环, 如果学了StringBuilder来拼接字符串 那么可以把3个循环写成1个
        {
            //第一步: 生成20个随机数[10,100]之间
            int[] nums = new int[20];
            Random r = new Random();
            for (int i = 0; i < nums.Length; i++)
            {
                nums[i] = r.Next(10, 101);//能随即到10,不能随即到101,结果就是[10,100]闭区间的数
            }

            //第二步: 每行输出5个
            Console.WriteLine("数组的全部元素如下:");
            for (int i = 0; i < nums.Length; i++)
            {
                if ((i + 1) % 5 == 0) //因为i从0开始,所以第一个数应该是0+1 ,依次类推就是i+1。如果是5,10,15,20这几个数,能被5整除,就换行
                {
                    Console.WriteLine(nums[i]);//换行输出
                }
                else
                {
                    Console.Write(nums[i] + "\t");//不换行输出,另外后面追加一个Tab制表符隔开
                }

            }

            //第三步: 输出能被3整除的数字
            Console.WriteLine("能被3整除的数字");
            for (int i = 0; i < nums.Length; i++)
            {
                if (nums[i] % 3 == 0)//如果能被3整除
                {
                    Console.Write(nums[i] + "\t");//输出
                }
            }
            Console.WriteLine();
        }

        private static void ShuiXianHua()
        {
            Console.WriteLine("三位数的水仙花数如下:");
            for (int i = 100; i < 1000; i++)
            {
                int b = i / 100; //百位
                int s = i % 100 / 10;//十位
                int g = i % 10;//个位
                if (b * b * b + s * s * s + g * g * g == i)
                {
                    Console.Write(i + "\t");
                }
            }
            Console.WriteLine();
        }
    }
}

附: 使用StringBuilder来减少for循环次数 ,

命名空间添加1个

using System.Text; //StringBuilder

        private static void Loop2()
        {
            int[] nums = new int[20];
            Random r = new Random();
            StringBuilder sb1 = new StringBuilder();//可变字符串 ,用于输出数字
            StringBuilder sb2 = new StringBuilder();// 用于输出能被3整除的数字
            for (int i = 0; i < nums.Length; i++)
            {
                nums[i] = r.Next(10, 101);//能随即到10,不能随即到101,结果就是[10,100]闭区间的数
                if ((i + 1) % 5 == 0) //因为i从0开始,所以第一个数应该是0+1 ,依次类推就是i+1。如果是5,10,15,20这几个数,能被5整除,就换行
                {
                    sb1.Append(nums[i] + Environment.NewLine);//拼接字符串 并且追加换行符
                }
                else
                {
                    sb1.Append(nums[i] + "\t");//不换行 ,且后面追加一个Tab制表符隔开
                }
                if (nums[i] % 3 == 0)//如果能被3整除
                {
                    sb2.Append(nums[i] + "\t");//拼接字符串
                }
            }
            Console.WriteLine("数组的全部元素如下:");
            Console.Write(sb1); //输出
            Console.WriteLine("能被3整除的数如下:");
            Console.WriteLine(sb2);
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式