c#15-20案例

93 阅读1分钟

1.键盘输入要打印的菱形行的个数,打印菱形

    //输出菱形的上半部分
            Console.WriteLine("请输入打印三角形行数");
            int num = Convert.ToInt32(Console.ReadLine());
            for (int i = 1; i <= num; i++)
            {
                //这层循环控制空格的个数
                for (int j = 1; j <= num - i; j++)
                {
                    Console.Write(" ");
                }
                //这层循环控制输出*的个数
                for (int k = 1; k <= 1 + (i - 1) * 2; k++)
                {
                    Console.Write("*");
                }
                //每一行的空格和*输出完毕后换行处理
                Console.Write("\n");
            }
            //底下菱形的第一行是从(num-1)开始的,
            for (int i = 1; i <= num - 1; i++)
            {
                //空格从1 2 3开始,发现规律是从i开始的。
                for (int j = 1; j <= i; j++)
                {
                    Console.Write(" ");
                }
                //底下菱形的星星从5 3 1开始的 空格对应的i
                for (int k = 1; k <= 2 * (num - i) - 1; k++)
                {
                    Console.Write("*");
                }
                Console.WriteLine();
            }

        }

效果图:

image.png

分析:从第五排开始的下一行,第四行和第六行开始平齐,依次变化;一共有num行,第六行可以理解为星星的(num-1)个,第七行就是(num-2)个,由此,第无数行就是根据i的变化而变化,也就是(num-i)个,然后第六行、第七行、第无数行的空格变化也是根据i的变化而变化,所以是j<=i.

2.打印九九乘法表,并且倒序也打印一遍

            for (int i = 1; i < 10; i++)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0}*{1}={2}\t", j, i, i * j);
                }
                Console.WriteLine();
            }
            for (int i = 9; i >= 1; i--)
            {
                for (int j = 1; j <= i; j++)
                {
                    Console.Write("{0}*{1}={2}\t", j, i, i * j);
                }
                Console.WriteLine();
            }

效果图:

image.png

3.百元购鸡案例

一百元购买一百只小鸡,公鸡三元一只,母鸡5元一只,小鸡2元一只,问多少只母鸡,公鸡、小鸡

    int gong, mu, xiao;
            for (gong = 1; gong <= 100 / 3; gong++)
            {
                for (mu = 1; mu <= 100 / 5; mu++)
                {
                    for (xiao = 1; xiao <= 100 / 2; xiao++)
                    {
                        if (gong + mu + xiao <= 100 && gong * 3 + mu * 5 + xiao * 2 == 100)
                        {
                            Console.WriteLine("公鸡有{0},母鸡有{1},小鸡有{2}", gong, mu, xiao);
                        }
                    }
                }
            }

4.实现俩个数的最大公约数和最小公倍数

    1.实现最大公约数和最小公倍数
            /*Console.WriteLine("请输入第一个数");
            int num1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入第一个数");
            int num2 = Convert.ToInt32(Console.ReadLine());

            //确保两个数中num1为最大值
            int maxTemp;
            if (num1 < num2)
            {
                maxTemp = num1;
                num1 = num2;
                num2 = maxTemp;
            }

            //将俩个数重新赋值给新的两个变量
            int a = num1; //俩个数中的最大值
            int b = num2; 

            while (b != 0)//求最大公约数
            {
                maxTemp = a % b; // 8%4=0
                a = b; //a = 4
                b = maxTemp; //b = 0
            }
            //输出最大公约数
            Console.WriteLine("输出最大公约数" + a);
            //输出最小公倍数=俩数相乘÷最大公约数
            Console.WriteLine("输出最小公倍数" + num1 * num2 / a);
            Console.ReadKey();

5.猜大小,随机生成1-100的数字

            Random rd = new Random();
            int num = rd.Next(1, 100) + 1;
            int count=0; //定义猜的次数
            while (true)
            {
                Console.WriteLine("请输入一个1-100的数");
                int rdnum = Convert.ToInt32(Console.ReadLine());
                if (rdnum < num)
                    //如果输入的数字小于随机数,提示猜小了
                {
                    Console.WriteLine("猜小了!!");
                    
                }else if(rdnum > num)
                {
                    Console.WriteLine("猜大了!!");
                }else
                {
                    Console.WriteLine("猜中了!!");
                    break;
                }
                count++;
                if (count == 10)
                {
                    Console.WriteLine("猜中的次数超出了,请隔段时间输入!!");
                    break;
                }
            }
            Console.WriteLine("使用的次数为{0}",count+1);