C#—流程控制

在这里插入图片描述
给我的感觉,知识点很少,学起来会很轻松,然而老师布置的作业却不轻松。

第一题:三个数 a = 9, b = 5, c = 4,给a,b,c三个数从小到大排序。

int a = 9, b = 5, c = 4, temp;
            if (a > b)
            {
    
    
                //a与b交换:5 9 4
                temp = a;
                a = b;
                b = temp;

            }
            if (a > c)
            {
    
    
                //a与c交换 4 9 5
                temp = a;
                a = c;
                c = temp;
            }
            if (b > c)
            {
    
    
                //b与c交换 4 5 9
                temp = b;
                b = c;
                c = temp;
            }
            Console.WriteLine("该三数由小到大排序:" + a + " " + b + " " + c);

第二题:输入一个整数,表示一个人的年龄,如果小于6岁,则输出“儿童”,6岁到13岁,输出“少儿”;14岁到18岁,输出“青少年”;18岁到35岁,输出“青年”;35岁到50岁,输出“中年”;50岁以上输出“中老年”。

            int age = int.Parse(Console.ReadLine());
            if (age < 6)
            {
    
    
                Console.WriteLine("儿童");
            }
            else if (age >= 6 && age < 13)
            {
    
    
                Console.WriteLine("少儿");
            }
            else if (age >= 18 && age < 35)
            {
    
    
                Console.WriteLine("青年");
            }
            else if (age >= 35 && age < 50)
            {
    
    
                Console.WriteLine("中年");
            }
            else if (age >= 50)
            {
    
    
                Console.WriteLine("老年");
            }

第三题:用if语句完成:判断某年是闰年(年对4求余等于0并且对100求余不等于0或者对400求余等于0)

            Console.WriteLine("请输入年份:");
            int year = int.Parse(Console.ReadLine());
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            {
    
    
                Console.WriteLine(year + "年为闰年");
            }

第四题:输入某年某月某日,判断这一天是这一年的第几天?(用switch写)

Console.WriteLine("请输入年份");
            int year = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入月份");
            int month = int.Parse(Console.ReadLine());
            int y = month;
            Console.WriteLine("请输入日期");
            int day = int.Parse(Console.ReadLine());
            int data = 0, days = 0;
            switch (month - 1)
            {
    
    
                case 1:
                    days = 31;
                    break;
                case 2:
                    days = 59;
                    break;
                case 3:
                    days = 90;
                    break;
                case 4:
                    days = 120;
                    break;
                case 5:
                    days = 151;
                    break;
                case 6:
                    days = 181;
                    break;
                case 7:
                    days = 212;
                    break;
                case 8:
                    days = 243;
                    break;
                case 9:
                    days = 273;
                    break;
                case 10:
                    days = 304;
                    break;
                case 11:
                    days = 335;
                    break;
                case 12:
                    days = 365;
                    break;
            }
            //判断闰年和是否超过2月
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 && month>3)
            {
    
    
                days += 1;
            }
            Console.WriteLine(days + day);
            //学长直接教我用数组来求
            Console.WriteLine("请输入年份");
            int year = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入月份");
            int month = int.Parse(Console.ReadLine());
            Console.WriteLine("请输入日期");
            int day = int.Parse(Console.ReadLine());
            int data = 0;
            int[] a = {
    
     31, 28, 31, 30, 31, 30, 31, 31, 28, 31, 30, 31 };
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            {
    
    
                a[1] = 29;
            }
            for (int i = 0; i < month - 1; i++)
            {
    
    
                data += a[i];
            }
            data = data + day;
            Console.WriteLine("这一天是这一年的第多少天" + data);

第五题:求:1,1/3,1/5,1/7,1/9 的和

            double sum = 0;
            for (int i = 0; i <= 4; i++)//int-->double
            {
    
    
                sum += (1.0 / (2 * i + 1));//注意要1.0
            }
            Console.WriteLine(sum);

第六题:一根棒9米,每次砍一半,砍多少次棒长度小于0.006米

            float a = 9f;
            int num = 0;
            while (a > 0.006)
            {
    
    
                a /= 2;
                num++;
            }
            Console.WriteLine("砍" + num + "次后,棒长度小于0.006米,此时棒长" + a + "米");

第七题:画图效果如下:

             /*
             *    *
             *   ***
             *  *****
             * *******
             *  *****
             *   ***
             *    *
             */
            for (int x = 0; x < 7; x++)//7行
            {
    
    
              //先正等腰三角形 4行              
                if (x <= 3) // 0 1 2 3
                {
    
    
                    // 0 1 2 3 行
                    // 3 2 1 0 空格数
                    // 空格数=3-行
                    for (int i = 0; i < 3 - x; i++)
                    {
    
    
                        Console.Write(" ");
                    }
                    // 0 1 2 4 行
                    // 1 2 5 7 星星数
                    // 星星数=2*行+1
                    for (int i = 0; i < 2 * x + 1; i++)
                    {
    
    
                        Console.Write("*");
                    }
                    Console.WriteLine();
               }
               //倒等腰三角形 3行
               if (x > 3) //4 5 6
                {
    
    
                    // 4 5 6 行
                    // 1 2 3 空格数
                    //空格=行-3
                    for (int i = 0; i < x - 3; i++)
                    {
    
    
                        Console.Write(" ");
                    }
                    // 4 5 6 行 ( 行太大,不方便找规律,当作0 1 2 (行1),相当于(行-4)=(行1) )
                    // 0 1 2 (行1)
                    // 5 3 1 星星数
                    // 星星数=5-2*(行1)  将 (行-4)=(行1) 代入
                    // 星星数=13-2*行
                    for (int i = 0; i < 2 * (6 - x) + 1; i++)
                    {
    
    
                        Console.Write("*");
                    }

                    Console.WriteLine();
                }

第八题:循环录入3位会员的信息,会员号合法(<4位整数>),显示录入信息;否则显示录入失败
(这题有点离谱,判断四位数,还得是整数)

for (int i = 1; i <= 3; i++)
            {
    
    
                try
                {
    
    
                    Console.Write("请输入会员号(<4位整数>):");
                    string a = Console.ReadLine();
                    int b = int.Parse(a);                 
                    if (a.Length == 4)
                    {
    
    
                        Console.WriteLine("会员号合法!");                        
                    }
                    else
                    {
    
    
                        Console.WriteLine("会员号不合法!");                       
                    }
                }
                catch (Exception e)
                {
    
    
                    Console.WriteLine("会员号不合法!");
                }                  
            }

第九题:100以内的一个整数,加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少

            int x;
            /*第一次加上100:100~200 开方:10~14, 100~196
             *第二次加上168:268~368 开方:15~20,
             *所以x: 0~96  
             *第一次完全平方数:10~14 (i)
             *第二次完全平方数:15~20 (j)
             */
            for (x = 0; x <= 96; x++)
            {
    
                
                for (int i = 10; i <= 14; i++)
                {
    
    
                    if ((x + 100) == i * i)
                    {
    
    
                        for (int j = 15; j < 20; j++)
                        {
    
    
                            if ((x + 100 + 168) == j * j)
                            {
    
    
                                Console.WriteLine(x);//21
                            }
                        }
                    }
                }
            }

第十题:有5家衣服专卖店,每家最多购买3件。用户可以选择离开,可以买衣服 最后打印总共买了几件衣服
运行结果效果:
在这里插入图片描述

            int num = 0;
            for (int n = 1; n <= 5; n++)
            {
    
    
                Console.WriteLine("欢迎光临第" + n + "家专卖店");
                for (int j = 1; j <= 3; j++)
                {
    
    
                    Console.Write("要离开吗(y/n)? ");
                    string str = Console.ReadLine();
                    if (str == "y")
                     {
    
     
                     Console.WriteLine("离店结账"); 
                     break;
                      }
                    else if (str == "n") 
                    {
    
    
                    Console.WriteLine("买了一件衣服"); 
                    num++; 
                    }
                    else
                     {
    
     
                     Console.WriteLine("输入有误\n程序结束");
                     break;
                     }
                }
                Console.WriteLine();
            }
            Console.WriteLine("总共买了" + num + "件衣服");

第十一题:若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数
运行效果如下:
在这里插入图片描述

            int top = 0;
            float average;
            for (int i = 1; i <= 3; i++)
            {
    
    
                float sum = 0f;
                Console.WriteLine("请输入第" + i + "个班级的成绩");
                for (int s1 = 1; s1 <= 4; s1++)
                {
    
    
                    Console.Write("第" + s1 + "个学员的成绩:");
                    int grade = int.Parse(Console.ReadLine());
                    sum += grade;
                    if (grade <= 85)
                    {
    
     continue; }
                    top++;
                }
                average = sum / 4;
                Console.WriteLine("第" + i + "个班级参赛学员的平均分是:" + average.ToString("0.0"));
                Console.WriteLine();
            }
            Console.WriteLine("成绩85分以上的学员人数有" + top + "人");

第十二题:猜拳游戏
电脑随机:剪刀:0 石头:1 布:2
玩家:输入 0 1 2
switch判断:
1、数值相等就是平局
2、游戏规则:石头压剪刀 布压石头 剪刀压布

Random rnd = new Random();
             int a = rnd.Next(0,3);
             Console.WriteLine("电脑随机:剪刀:0  石头:1   布:2");
             Console.WriteLine("玩家:输入 0 1 2");
             Console.WriteLine("数值相等就是平局");
             Console.WriteLine("游戏规则:石头压剪刀    布压石头   剪刀压布");
             Console.WriteLine( "********************************************");
             Console.WriteLine("请输入:");
             int b = int.Parse(Console.ReadLine());
             while (b!=0 && b!=1 && b != 2)
             {
    
    
                 Console.Write("输入有误!请重新输入:");
                 b = int.Parse(Console.ReadLine());
             }
                 switch (a)
             {
    
    
                 case 0:
                     if (b==2)
                     {
    
    
                         Console.WriteLine("玩家胜:剪刀(电脑) VS 石头(玩家)");
                     }                   
                     if (b ==1)
                     {
    
    
                         Console.WriteLine("电脑胜:剪刀(电脑) VS 布(玩家)");
                     }
                     if (b == 0) {
    
     Console.WriteLine("平局:双方都是剪刀"); }
                     break;
                 case 1:
                     if (b == 0)
                     {
    
    
                         Console.WriteLine("电脑胜:石头(电脑) VS 剪刀(玩家)");
                     }
                     if (b == 1) {
    
     Console.WriteLine("平局:双方都是石头"); }
                     if (b == 2)
                     {
    
    
                         Console.WriteLine("玩家胜:石头(电脑) VS 布(玩家)");
                     }
                     break;
                 case 2:
                     if (b == 0) {
    
     Console.WriteLine("玩家胜:布(电脑) VS 剪刀(玩家)"); }
                     if (b == 1) {
    
     Console.WriteLine("电脑胜:布(电脑) VS 石头(玩家)"); }
                     if (b == 2) {
    
     Console.WriteLine("平局:双方都是布"); }
                     break;
                 default:
                     Console.WriteLine("输入有误");
                     break;
             }

老师布置的习题太给力了,脑细胞都不够用了。然后我自己写的大部分代码都比较繁琐,希望大佬在评论区可以给出更简单的。

猜你喜欢

转载自blog.csdn.net/weixin_44706943/article/details/125683976