首页 > 编程语言 >C# 第二次练习

C# 第二次练习

时间:2024-12-10 11:53:32浏览次数:3  
标签:C# 练习 单词 && 返回值 长度 第二次 整除

C# 第二次练习

 //            方法
            //1.方法名称:独立完成功能的一个多个单词缩写,能见名知意即可,比如求单词平均长度:AverageWordLength
            //2.方法参数:独立完成事情的条件,求单词平均长度,那么条件就是需要给单词,即:string str
            //3.返回值:做事情的结果:求平均长度,平均长度应该是小数,所以返回值类型为double
            //4.有返回值的方法,在书写时,首先在方法中声明一个和返回值类型一样的变量并赋初值,如:double avgLength = 0,然后返回这个变量:return avgLength,然后功能实现写在这两句代码中间

            //1.统计一段英文短文中单词的平均长度
            /*
            string file = textBox1.Text;
            double avg = AverageWordLength(file);
            textBox2.Text = "单词的平均长度" + avg;
            */

            //2.判断一个数是否能被3整除但不能被7整除
            //textBox1.Text = "1-100之间能被3整除但不能被7整除的数有:";
            //for (int i = 100; i <= 200; i++)
            //{
            //    if (IsDivide(i))
            //    {
            //        textBox2.Text += i + ",";
            //    }
            //}

            //3.输入一个字符串,统计字符串中英文字母和数字字符的个数并输出
            //Word(textBox1.Text);

            //4.对正整数m求和,其中求和公式为s= 1/2+1/3+…+1/m,方法返回s的值。
            //textBox2.Text = "求和为:"+Sum(int.Parse(textBox1.Text));

            //5.将一个字符串中所有英文字符后加一个$字符,并返回处理后的字符串。
            //textBox2.Text = "处理后的字符串:" +AddDollar(textBox1.Text);

            //6.求s=1/a+1/aa+1/aaa+1/aaaa+1/aaaaa的值
            //textBox2.Text = "计算后:" +Sum1(int.Parse(textBox1.Text));

            //7.判断一个数是否是完数,返回值为布尔类型。一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。
            //textBox2.Text = "是否是完数:" + IsPerfect(int.Parse(textBox1.Text));

            //8.求分数序列:2/1,1/3,3/4,4/7,7/11,11/18...的前10项之和,并返回。
            //textBox2.Text = "前10项之和:" + Sum2();

            //9.求1+1/2!+1/3!+...+1/n!的和,并将和作为返回值返回
            //textBox2.Text = "1+1/2!+1/3!+...+1/n!的和:" + Sum3(int.Parse(textBox1.Text));

            //10.在大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均
            //编写一个方法,输入10个选手的分数,返回最后得分。
            string str = textBox1.Text;
            int[] s =str.Split(',').Select(int.Parse).ToArray();
            double avg = LastScore(s);
            textBox2.Text = "最后得分:" + avg;
        }

        //1.统计一段英文短文中单词的平均长度,单词之间由若干个空格隔开。
        public double AverageWordLength(string str)
        {//I am a student

            double avgLength = 0;
            string[] words = str.Split(' ');
            double sum = 0;
            for (int i = 0; i < words.Length; i++)
            {
                sum += words[i].Length;
            }
            avgLength = sum / words.Length;
            return avgLength;

        }

        //2.判断一个数是否能被3整除但不能被7整除
        bool IsDivide(int num)
        {
            bool flag = false;
            if (num % 3 == 0 && num % 7 != 0)
            {
                flag = true;
            }
            return flag;
        }


        //3.输入一个字符串,统计字符串中英文字母和数字字符的个数并输出。要求编写应用程序,来检验方法的正确性。
        public void Word(string str)
        {
            int zimu = 0;
            int shuzi = 0;
            int qita = 0;
            foreach (char s in str)
            {
                if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
                {
                    zimu++;
                }
                else if (s >= '0' && s <= '9')
                {
                    shuzi++;
                }
                else
                {
                    qita++;
                }
            }
            textBox2.Text = "英文字符个数:" + zimu + "数字字符个数:" + zimu + "其他字符个数:" + qita;
            
        }

        //4.对正整数m求和,其中求和公式为s= 1/2+1/3+…+1/m,方法返回s的值。        
        public double Sum(int m)
        {
            double s = 0;
            for (int i = 1; i <= m; i++)
            {
                s += 1.0 / i;
            }
            return s;
        }


        //5.写一个方法,将一个字符串中所有英文字符后加一个$字符,并返回处理后的字符串。
        //例如输入:A1B23CD45,则方法返回值为:A$1B$23C$D$45,要求编写应用程序,来检验方法的正确性。
        public string AddDollar(string str)
        {
            string result = "";
            foreach (char s in str)
            {
                if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
                {
                    result += s + "$";
                }
                else
                {
                    result += s;
                }
            }
            return result;
        }

        //6.写一个方法,求s=1/a+1/aa+1/aaa+1/aaaa+1/aaaaa的值,其中a是用户定义的数字。
        //例如1/2+1/22+1/222+1/2222+1/22222(此时共有5个数相加),返回值为和s。
        public double Sum1(int a)
        {
            double s = 0;
            for (int i = 1; i <= a; i++)
            {
                s += 1.0 / (a*xunhuan(i));
            }
            return s;
        }

        public int xunhuan(int n)
        {
            int a = 0;
            string s = 0.ToString();
            for (int i = 1; i <= n; i++)
            {
                s += 1;
            }
            a=int.Parse(s);
            return a;

        }
        
        //7.判断一个数是否是完数,返回值为布尔类型。一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。
        bool IsPerfect(int num)
        {
            int sum = 0;
            for (int i = 1; i <= num / 2; i++)
            {
                if (num % i == 0)
                {
                    sum += i;
                }
            }
            if (sum == num)
                return true;
            else
                return false;
        }

        //8.写一个方法,求分数序列:2/1,1/3,3/4,4/7,7/11,11/18...的前10项之和,并返回。
        public double Sum2()
        {
            double sum = 0;
            double a = 1;
            double b = 2;
            double temp = 0;
            for (int i = 0; i < 10; i++)
            {
                sum += a / b;
                temp = b;
                b = a + b;
                a = temp;
            }
            return sum;
        }     

        //9.求1+1/2!+1/3!+...+1/n!的和,并将和作为返回值返回
        public double Sum3(int n)
        {
            double sum = 0;
            for (int i = 1; i <= n; i++)
            {
                sum += 1.0 / Factorial(i);
            }
            return sum;
        }  
        public int Factorial(int n)
        {
            int result = 1;
            for (int i = 1; i <= n; i++)
            {
                result *= i;
            }
            return result; 
        }


        //10.在大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均
        //编写一个方法,输入10个选手的分数,返回最后得分。
        public double LastScore(int[] scores)
        {

            Array.Sort(scores);
            int max = scores[9];
            int min = scores[0];
            int sum = 0;
            for (int i = 1; i < 9; i++)
            {
                sum += scores[i];
            }
            double avg = (double)sum / 8;
            return avg;
        }

删除线

引用
*** 分割线 ---

标签:C#,练习,单词,&&,返回值,长度,第二次,整除
From: https://www.cnblogs.com/yaolicheng/p/18597022

相关文章

  • Ubuntu + Caddy 搭建简易文件下载站
    安装sudoaptinstall-ydebian-keyringdebian-archive-keyringapt-transport-httpscurlcurl-1sLf'https://dl.cloudsmith.io/public/caddy/stable/gpg.key'|sudogpg--dearmor-o/usr/share/keyrings/caddy-stable-archive-keyring.gpgcurl-1sLf'......
  • vue3中vconsole使用方法
    1.安装npmivconsole-D 2.在Vue项目的入口文件(通常是main.js或main.ts)中导入VConsole请注意,在生产环境下,你应该避免将VConsole包含在你的项目中。你可以使用条件语句来仅在开发环境下引入VConsole//处理是开启H5调试importVConsolefrom"vconsole";//在dev环境使......
  • 解决 java.lang.SecurityException: Media projections require a foreground service
    我在Android8.0上增加的截屏功能,也声明了响应权限,但是在Android11上就报权限错误。原来在Android10以后启动前台服务时候有第三个参数。低版本我们调用publicfinalvoidstartForeground(intid,Notificationnotification)即可但是在Android10以后需要调用publicfinal......
  • C#中通过ObjectPool重用对象提高程序性能
    环境说明:.NET8.0Microsoft.Extensions.DependencyInjectionv9.0.0Microsoft.Extensions.ObjectPoolv9.0.0ObjectPool重用对象先看微软官方文档的描述:Microsoft.Extensions.ObjectPool它支持将一组对象保留在内存中以供重用,而不是允许对对象进行垃圾回收如果要管理的对......
  • 【数据结构与算法】回溯算法:LeetCode“排列问题” 求解,解释并模拟递归+回溯的遍历过程
      【作者自述:记录学习笔记,既然写了就让更多的人看到吧!欢迎大家关注交流学习,一步一个脚印持续更新!】【更多推荐笔记】【数据结构与算法】动态规划:解密“完全背包问题”的真相!附LeetCode四大问题的实现-CSDN博客【数据结构与算法】动态规划:解密“0-1背包问题”的真相!附LeetC......
  • PHP版谷歌验证 (Google Authenticator)
    地址https://github.com/PHPGangsta/GoogleAuthenticator示例index.php<?phprequire_once'PHPGangsta/GoogleAuthenticator.php';$ga=newPHPGangsta_GoogleAuthenticator();//创建一个新的"安全密匙SecretKey"//把本次的"安全密匙SecretKey"入库,和账户关......
  • 【comfyui教程】开源文生图模型之光!ComfyUI - AuraFlow详细搭建教程
    前言被广大网友誉为“开源文生图模型之光”的AuraFlow详细搭建教程来啦!下面将介绍ComfyUI-AuraFlow在算家云的搭建流程以及本地部署教程,希望能帮助到大家~一模型介绍AuraFlow是唯一一个真正开源的文生图模型,由Fal团队开源,其代码和权重都放在了FOSS许可证下。模......
  • Vmware系列&虚拟机系列【仅供参考】:windows sever 2012R2虚拟机蓝屏报错CRITICAL_STRU
    windowssever2012R2虚拟机蓝屏报错CRITICAL_STRUCTURE_CORRUPTIONwindowssever2012R2虚拟机蓝屏报错CRITICAL_STRUCTURE_CORRUPTION在ESXI5.0主机上windowssever2012R2和windowsserver2016虚拟机出现经常蓝屏重启。在VMware知识库查找解决办法,升级ESXI......
  • Vmware系列&虚拟机系列【仅供参考】:vCenter8.0以上无DNS环境部署
    vCenter8.0以上无DNS环境部署vCenter8.0以上无DNS环境部署无DNS解决办法1.在安装-第1阶段:部署vCenterSever的第7步配置网络设置注意FQDN和IP地址,DNS服务器地址都统一填vCenter的IP地址。2.安装部署第一阶段时,不能点继续。3.打开浏览器登入部署的ESXI主机上......
  • 【Linux】自定义开机启动service
    【Linux】自定义开机启动service1.确认SELinux是否开启1.1临时关闭SELinux。临时禁用SELinux后,系统会立即生效,但重新启动后会恢复为启用状态。要临时禁用SELinux,请使用以下命令:sudosetenforce0这个命令将SELinux模式从Enforcing设置为Permissive,即系统会记录......