前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#实例练习2:程序流程控制(1)

C#实例练习2:程序流程控制(1)

作者头像
小孙同学
发布2022-01-17 15:16:57
5130
发布2022-01-17 15:16:57
举报
文章被收录于专栏:小孙同学的学习笔记

实验1:常量、变量、运算符、表达式和赋值语句的使用

输出半径,求对应圆的周长、面积,对应球体的体积。

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            const double PI = 3.14159;
            double r, permeter, area, volume;
            //变量r,permeter,area,volume分别存放圆的半径,周长,面积以及对应球体的体积

            Console.Write("请输入半径:");
            String s = Console.ReadLine();
            r = double.Parse(s);
            //显性数据类型转换,将数字字符串转换成等效的双精度浮点数

            Console.WriteLine("圆的半径为:{0}", r);
            //获取用户输入,并打印出圆的半径的值

            permeter = 2 * PI * r;
            area = PI * r * r;
            volume = 4 / 3 * PI * Math.Pow(r, 3);
            //列出permeter、area、volume与r的关系表达式

            Console.WriteLine("圆的周长是:{0}\n圆的面积是:{1}\n对应球体的体积是:{2}", permeter, area, volume);
            //打印计算结果

            Console.ReadLine();
            //等待用户输入,目的是使程序"停下来"
        }
    }
}
代码语言:javascript
复制
请输入半径:5
圆的半径为:5
圆的周长是:31.4159
圆的面积是:78.53975
对应球体的体积是:392.69874999999996

实验2:求三角形的周长和面积

输入三角形的三条边,先判断是否可以构成三角形,如果可以,则求三角形的周长和面积,否则报错。

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            double a, b, c;//存放三角形的三条边
            double p, h, area;
            //变量p用来存放三角形的周长,h存放三角形周长的一半,area用来存放三角形的面积

            Console.Write("请输入三角形的第一条边a:");
            String s = Console.ReadLine();
            a = double.Parse(s);
            Console.Write("请输入三角形的第二条边b:");
            s = Console.ReadLine();
            b = double.Parse(s);
            Console.Write("请输入三角形的第三条边c:");
            s = Console.ReadLine();
            c = double.Parse(s);
            //获取用户输入数据,并将字符串数据转换成双精度浮点型数据

            //判断是否可以构成三角形,若能,用海伦公式计算三角形的面积
            if (a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a)
            {
                Console.WriteLine("三角形的三条边分别为a={0}, b={1}, c={2}",a,b,c);
                p = a + b + c;
                h = p / 2;
                area = Math.Sqrt(h * (h - a) * (h - b) * (h - c));
                Console.WriteLine("三角形的周长为{0}\n三角形的面积为{1}", p, area);
            }
            else Console.WriteLine("无法构成三角形!");

            Console.ReadKey();
        }
    }
}
代码语言:javascript
复制
请输入三角形的第一条边a:1
请输入三角形的第二条边b:1
请输入三角形的第三条边c:3
无法构成三角形!
代码语言:javascript
复制
请输入三角形的第一条边a:10
请输入三角形的第二条边b:24
请输入三角形的第三条边c:26
三角形的三条边分别为a=10, b=24, c=26
三角形的周长为60
三角形的面积为120
代码语言:javascript
复制
请输入三角形的第一条边a:10.2
请输入三角形的第二条边b:25.5
请输入三角形的第三条边c:33.3
三角形的三条边分别为a=10.2, b=25.5, c=33.3
三角形的周长为69
三角形的面积为95.15345500821303

实验3:分段函数的实现

输入x,根据如下公式计算分段函数y的值

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            double x, y;
            Console.Write("请输入x的值: ");
            String s = Console.ReadLine();
            x = double.Parse(s);

            //方法一
            y = (x * x - 3 * x) / (x + 1) + 2 * Math.PI + Math.Sin(x);
            if(y<0)
            {
                y = Math.Log(-5 * x) + Math.Sqrt(Math.Abs(x) + Math.Pow(Math.E, 4)) - Math.Pow(x + 1, 3);
            }
            Console.WriteLine("方法一:y={0}", y);

            //方法二
            if(x>=0)
            {
                y = (x * x - 3 * x) / (x + 1) + 2 * Math.PI + Math.Sin(x);
            }
            if(x<0)
            {
                y = Math.Log(-5 * x) + Math.Sqrt(Math.Abs(x) + Math.Pow(Math.E, 4)) - Math.Pow(x + 1, 3);
            }
            Console.WriteLine("方法二:y={0}", y);

            //方法三
            if (x >= 0)
            {
                y = (x * x - 3 * x) / (x + 1) + 2 * Math.PI + Math.Sin(x);
            }
            else
            {
                y = Math.Log(-5 * x) + Math.Sqrt(Math.Abs(x) + Math.Pow(Math.E, 4)) - Math.Pow(x + 1, 3);
            }
            Console.WriteLine("方法三:y={0}", y);

            //方法四
            y=(x>=0)? y = (x * x - 3 * x) / (x + 1) + 2 * Math.PI + Math.Sin(x): y = Math.Log(-5 * x) + Math.Sqrt(Math.Abs(x) + Math.Pow(Math.E, 4)) - Math.Pow(x + 1, 3);

            Console.WriteLine("方法四:y={0}", y);

            Console.ReadKey();
        }
    }
}
代码语言:javascript
复制
请输入x的值: 5
方法一:y=6.990927699183115
方法二:y=6.990927699183115
方法三:y=6.990927699183115
方法四:y=6.990927699183115

实验4:三个数比较大小

产生三个0~100(包含0和100)的随机数a,b,c 按从小到大的顺序排序

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, b, c;
            int temp;

            Random rNum = new Random();
            a = rNum.Next(101);
            b = rNum.Next(101);
            c = rNum.Next(101);

            Console.WriteLine("原始值: a={0}, b={1}, c={2}", a, b, c);

            //冒泡排序的方法两两比较
            if(a > b)
            {
                temp = a;
                a = b;
                b = temp;
            }
            if (a > c)
            {
                temp = a;
                a = c;
                c = temp;
            }
            if (b > c)
            {
                temp = b;
                b = c;
                c = temp;
            }
            
            Console.WriteLine("从小到大排序后: a={0}, b={1},c={2}", a, b, c);
            Console.ReadKey();
        }
    }
}   
代码语言:javascript
复制
原始值: a=15, b=59, c=59
从小到大排序后: a=15, b=59, c=59
代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int a, b, c;
            int Max, Min, Mid;

            Random rNum = new Random();
            a = rNum.Next(101);
            b = rNum.Next(101);
            c = rNum.Next(101);

            Console.WriteLine("原始值: a={0}, b={1}, c={2}", a, b, c);

            Max = Math.Max(Math.Max(a, b), c);
            Min = Math.Min(Math.Min(a, b), c);
            Mid = a + b + c - Max - Min;

            Console.WriteLine("从小到大排序后: a={0}, b={1}, c={2}", Min, Mid, Max);
            Console.ReadKey();
        }
    }
} 
代码语言:javascript
复制
原始值: a=8, b=26, c=3
从小到大排序后: a=3, b=8, c=26

实验5:求解一元二次方程

输入一元二次方程组的三个系数a,b,c,求方程的解。 (当一元二次方程组中二次项系数a=0时,方程不再是一元二次方程,而是一元一次方程,这里有点歧义,此处的一元二次方程应该指的是形如a x^{2}+b x+c=0的方程)

分析:

方程 a x^{2}+b x+c=0 的解有以下几种情况 :(1) a=0b=0, 无解(2) a=0b !=0, 有一个实根 : x=-\frac{c}{b}(3) b^{2}-4 a c=0, 有两个相等实根 : x_{1}=x_{2}=-\frac{b}{2 a}(4) b^{2}-4 a c>0,: x_{1}=\frac{-b+\sqrt{b^{2}-4 a c}}{2 a}, x_{2}=\frac{-b-\sqrt{b^{2}-4 a c}}{2 a}(5) b^{2}-4 a c<0,: x_{1}=-\frac{b}{2 a}+\frac{\sqrt{4 a c-b^{2}}}{2 a} \mathrm{i}, x_{2}=-\frac{b}{2 a}-\frac{\sqrt{4 a c-b^{2}}}{2 a} \mathrm{i}_{}

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            double a, b, c;//存放方程的三个系数
            double x1, x2;//存放实数解
            double realPart, imagPart;//存放虚数解中的实部和虚部
            double dlt = 0;//存放delta

            Console.Write("请输入系数a: ");
            String s = Console.ReadLine();
            a = double.Parse(s);

            Console.Write("请输入系数b: ");
            s = Console.ReadLine();
            b = double.Parse(s);

            Console.Write("请输入系数c: ");
            s = Console.ReadLine();
            c = double.Parse(s);

            if(a==0)
            {
               if(b==0)
               {
                    Console.WriteLine("方程无解!");
               }
               else
               {
                    Console.WriteLine("此方程的解为:{0}", -c / b);
               }
            }

            else
            {
                dlt = b * b - 4 * a * c;
                if(dlt>0)
                {
                    x1 = (-b + Math.Sqrt(dlt)) / (2 * a);
                    x2 = (-b - Math.Sqrt(dlt)) / (2 * a);
                    Console.WriteLine("此方程有两个不等式根,分别是{0}和{1}", x1, x2);
                }

                else if(dlt==0)
                {
                    x1 = x1 = (-b + Math.Sqrt(dlt)) / (2 * a);
                    Console.WriteLine("此方程有两个相等的实根为:{0}", x1);
                }

                else
                {
                    realPart = -b / (2 * a);
                    imagPart = Math.Sqrt(-dlt) / 2 * a;
                    Console.WriteLine("方程有两个虚根分别是{0}+{1}i 和 {0}-{1}i ", realPart, imagPart);
                }
            }
        }
    }
}
代码语言:javascript
复制
请输入系数a: 0
请输入系数b: 0
请输入系数c: 6
方程无解!
代码语言:javascript
复制
请输入系数a: 0
请输入系数b: 1
请输入系数c: 2
此方程的解为:-21
代码语言:javascript
复制
请输入系数a: 1
请输入系数b: -2
请输入系数c: 1
此方程有两个相等的实根为:1
代码语言:javascript
复制
请输入系数a: 1
请输入系数b: -1
请输入系数c: -6
此方程有两个不等式根,分别是3和-2
代码语言:javascript
复制
请输入系数a: 1
请输入系数b: -1
请输入系数c: 0.5
方程有两个虚根分别是0.5+0.5i 和 0.5-0.5i

实验6:switch语句实现多重分支结构

输入一个数字(1~7),对应输出内容(星期一 ~星期天)

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            Console.Write("请输入一个数字(1-7)>>>:");
            String s = Console.ReadLine();
            i = int.Parse(s);

            switch(i)
            {
                case 1:
                    Console.WriteLine("您输入的数字对应的内容是:星期一");
                    break;
                case 2:
                    Console.WriteLine("您输入的数字对应的内容是:星期二");
                    break;
                case 3:
                    Console.WriteLine("您输入的数字对应的内容是:星期三");
                    break;
                case 4:
                    Console.WriteLine("您输入的数字对应的内容是:星期四");
                    break;
                case 5:
                    Console.WriteLine("您输入的数字对应的内容是:星期五");
                    break;
                case 6:
                    Console.WriteLine("您输入的数字对应的内容是:星期六");
                    break;
                case 7:
                    Console.WriteLine("您输入的数字对应的内容是:星期天");
                    break;
                default:
                    Console.WriteLine("输入错误!");
                    break;
            }
            Console.ReadKey();
        }
    }
}
代码语言:javascript
复制
请输入一个数字(1-7)>>>:0
输入错误!
代码语言:javascript
复制
请输入一个数字(1-7)>>>:7
您输入的数字对应的内容是:星期天

实验7:if语句和switch分支结构

使用if语句和switch语句输出下面的分段函数

switch语句

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int salary = 0;
            int c = 0;
            double f = 0;

            Console.Write("请输入salary的值:");
            String s = Console.ReadLine();
            salary = int.Parse(s);

            if(salary>1500)
            {
                c = 15;
            }
            else
            {
                c = (salary - 1) / 100;
            }

            switch(c)
            {
                case 0:
                case 1:
                case 2:
                case 3:
                       f = 0.5 / 100 * salary;
                    break;

                case 4:
                case 5:
                    f = 1.0 / 100 * salary;
                    break;

                case 6:
                case 7:
                    f = 1.5 / 100 * salary;
                    break;

                case 8:
                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14:
                    f = 2.0 / 100 * salary;
                    break;

                case 15:
                    f = 3.0 / 100 * salary;
                    break;
            }
            
            Console.WriteLine("f={0}", f);
            Console.ReadKey();
        }
    }
}
代码语言:javascript
复制
请输入salary的值:666
f=9.99
代码语言:javascript
复制
请输入salary的值:99999
f=2999.97

if语句

代码语言:javascript
复制
using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int salary = 0;
            double f = 0;

            Console.Write("请输入salary的值:");
            String s = Console.ReadLine();
            salary = int.Parse(s);

            if(salary>0&&salary<=400)
            {
                f = 0.5 / 100 * salary;
            }
            else if(salary > 400 && salary <= 600)
            {
                f = 1.0 / 100 * salary;
            }
            else if (salary > 600 && salary <= 800)
            {
                f = 1.5 / 100 * salary;
            }
            else if (salary > 800 && salary <= 1500)
            {
                f = 2.0 / 100 * salary;
            }
            else
            {
                f = 3.0 / 100 * salary;
            }
            Console.WriteLine("f={0}", f);
            Console.ReadKey();
        }
    }
}

            
代码语言:javascript
复制
请输入salary的值:666
f=9.99
代码语言:javascript
复制
请输入salary的值:99999
f=2999.97
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验1:常量、变量、运算符、表达式和赋值语句的使用
  • 实验2:求三角形的周长和面积
  • 实验3:分段函数的实现
  • 实验4:三个数比较大小
  • 实验5:求解一元二次方程
  • 实验6:switch语句实现多重分支结构
  • 实验7:if语句和switch分支结构
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档