C#基础56-60

56.字符数组x中存有任意一串字符;串中的所有小写字母改写成大写字母,如果是大写字母改为小写字母,其他字符不变。最后把已处理的字符串仍重新存入字符数组x中,最后调用函数把结果输出到控制台中。

57.求出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT以及这些素数值的和SUM。请编写函数实现程序要求,最后调用函数把结果CNT和SUM输出到控制台中.

58.将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数实现此功能,最后调用函数将新序列输出控制台。

例:序列      {6,8,9,1,2,5,4,7,3}        经重排后成为{3,4,5,2,1,6,8,9,7}

59.数组x中存入一字符串,请编制函数,分别删除其中的空格、标点以及字符的所在下标为奇数的字符,余下的字符串重新存放入数组x中输出.

60.数组x中存有一字符串,请编制函数,以该字符的ASCII值得大小把该字符串从大到小进行排序,结果仍按行重新存入x中。

56、代码定义了一个名为 ToggleCase 的函数,它接收一个字符数组 x 作为参数,并将其中的小写字母改写成大写字母,将大写字母改写成小写字母,其他字符保持不变。最后,Main 方法调用 ToggleCase 函数,并将结果输出到控制台,我们在这里要用到toupper,tolower,isupper,islower四个方法、代码如下:

 private static void Main(string[] args)
 {
     // 示例字符数组x,你可以替换为其他字符数组以进行测试
     char[] x = { 'a', 'B', 'c', 'D', 'e', 'F', 'g', 'H', 'i', 'j', 'k', 'L', 'm', 'n', 'o', 'P', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '@', '#' };
     ToggleCase(x); // 调用函数进行大小写转换

     // 输出转换后的字符数组x
     Console.WriteLine("转换后的字符数组x:");
     foreach (char c in x)
     {
         Console.Write(c);
     }
 }

 // 转换字符数组x中的所有字符的函数
 static void ToggleCase(char[] x)
 {
     for (int i = 0; i < x.Length; i++)
     {
         // 如果字符是小写字母,转换为大写字母
         if (char.IsLower(x[i]))
         {
             x[i] = char.ToUpper(x[i]);
         }
         // 如果字符是大写字母,转换为小写字母
         else if (char.IsUpper(x[i]))
         {
             x[i] = char.ToLower(x[i]);
         }
         // 其他字符保持不变
     }
 }

57、代码定义了一个名为 FindSpecialPrimes 的函数,它将计算100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数个数和这些素数的和。最后,Main 方法调用 FindSpecialPrimes 函数,并将结果 CNT 和 SUM 输出到控制台。代码如下:

 private static void Main(string[] args)
 {
     var results = FindSpecialPrimes(); // 调用函数计算个数CNT和和SUM

     // 输出结果到控制台
     Console.WriteLine($"素数的个数 CNT: {results.CNT}");
     Console.WriteLine($"素数值的和 SUM: {results.SUM}");
 }

 // 查找符合条件的素数并返回个数和和的函数
 static (int CNT, int SUM) FindSpecialPrimes()
 {
     int cnt = 0; // 素数的个数
     int sum = 0; // 素数的和

     // 遍历100到999之间的所有数
     for (int num = 100; num <= 999; num++)
     {
         int hundreds = num / 100; // 百位数字
         int tens = (num / 10) % 10; // 十位数字
         int ones = num % 10; // 个位数字

         // 计算个位和十位数字之和
         int sumOfTensAndOnes = tens + ones;

         // 检查是否是素数且满足条件
         if (IsPrime(num) && sumOfTensAndOnes % 10 == hundreds)
         {
             cnt++; // 增加计数
             sum += num; // 累加素数和
         }
     }

     return (CNT: cnt, SUM: sum); // 返回统计信息
 }

 // 检查一个数是否为素数的函数
 static bool IsPrime(int num)
 {
     if (num <= 1) return false; // 小于等于1的数不是素数
     if (num == 2) return true; // 2是素数
     if (num % 2 == 0) return false; // 排除偶数

     // 检查是否能被任何奇数整除
     for (int i = 3; i <= Math.Sqrt(num); i += 2)
     {
         if (num % i == 0) return false;
     }

     return true;
 }

58、代码定义了一个名为 PartitionAroundK1 的函数,它接收一个整数数组 sequence 作为参数,并对数组进行重排,使得所有比 K1(即数组中的第一个元素)小的数都放在 K1 的前面,而所有比 K1 大的数都放在 K1 的后面。最后,Main 方法调用 PartitionAroundK1 函数,并输出重排后的序列。代码如下:

private static void Main(string[] args)
{
    // 示例正整数序列
    int[] sequence = { 6, 8, 9, 1, 2, 5, 4, 7, 3 };
    PartitionAroundK1(sequence); // 调用函数进行重排

    // 输出重排后的序列
    Console.WriteLine("重排后的序列:");
    foreach (int number in sequence)
    {
        Console.Write(number + " ");
    }
}

// 函数用于重排整数序列
static void PartitionAroundK1(int[] sequence)
{
    int k1 = sequence[0]; // K1是序列中的第一个元素
    int left = 1; // 左指针,从K1的下一个位置开始
    int right = sequence.Length - 1; // 右指针,从序列末尾开始

    // 使用双指针法进行重排
    while (left <= right)
    {
        // 从左向右找到第一个大于等于K1的元素
        while (left <= right && sequence[left] < k1)
        {
            left++;
        }

        // 从右向左找到第一个小于K1的元素
        while (left <= right && sequence[right] >= k1)
        {
            right--;
        }

        // 如果left小于right,说明找到了需要交换的元素对
        if (left < right)
        {
            int temp = sequence[left];
            sequence[left] = sequence[right];
            sequence[right] = temp;
        }
    }
}

59、代码定义了一个名为 TransformString 的函数,它接收一个字符串数组 x 作为参数,删除其中的空格、标点符号以及字符下标为奇数的字符,然后将处理后的字符串存入数组 x 中,并输出到控制台,代码如下:

 private static void Main(string[] args)
 {
     // 示例字符串数组x
     string[] x = { "A B C, D. E F G!" };
     TransformString(x); // 调用函数进行处理

     // 输出处理后的字符串
     Console.WriteLine("处理后的字符串:");
     Console.WriteLine(x[0]);
 }

 // 函数用于删除字符串中的空格、标点符号以及下标为奇数的字符
 static void TransformString(string[] x)
 {
     // 用于存储处理后的字符串
     string result = "";

     // 遍历字符串中的每个字符
     for (int i = 0; i < x[0].Length; i++)
     {
         char c = x[0][i];

         // 检查是否为空格、标点符号或下标为奇数的字符
         if (!(char.IsWhiteSpace(c) || char.IsPunctuation(c) || i % 2 == 1))
         {
             // 如果不是,则添加到结果字符串中
             result += c;
         }
     }

     // 更新数组x中的字符串为处理后的字符串
     x[0] = result;
 }

60、代码定义了一个名为 SortStringByAscii 的函数,它接收一个字符串数组 x 作为参数,并使用 ASCII 值大小将字符串中的字符从大到小排序。排序后的字符串被重新存放到数组 x 中,并输出到控制台,这边我们可以用到冒泡排序,我们用到字符比较方法compareto,代码如下:

private static void Main(string[] args)
{
    // 示例字符串数组x
    string[] x = { "hello", "world", "C#", "sort" };
    SortStringByAscii(x); // 调用函数进行排序

    // 输出排序后的字符串
    Console.WriteLine("排序后的字符串:");
    foreach (string str in x)
    {
        Console.WriteLine(str);
    }
}

// 函数用于根据字符的ASCII值大小将字符串从大到小排序
static void SortStringByAscii(string[] x)
{
    for (int i = 0; i < x.Length - 1; i++)
    {
        for (int j = i + 1; j < x.Length; j++)
        {
            // 如果第一个字符串小于第二个字符串,就交换它们的位置
            if (x[i].CompareTo(x[j])<0)
            {
                string temp = x[i];
                x[i] = x[j];
                x[j] = temp;
            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/923981.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为IPD流程管理体系L1至L5最佳实践-解读

该文档主要介绍了华为IPD流程管理体系&#xff0c;包括流程体系架构、流程框架实施方法、各业务流程框架示例以及相关案例等内容&#xff0c;旨在帮助企业建立高效、规范的流程管理体系&#xff0c;实现业务的持续优化和发展。具体内容如下&#xff1a; 1. 华为流程体系概述 -…

Edge浏览器保留数据,无损降级退回老版本+禁止更新教程(适用于Chrome)

3 个月前阿虚就已经写文章告警过大家&#xff0c;Chromium 内核的浏览器将在 127 以上版本开始限制仍在使用 Manifest V2 规范的扩展&#xff1a;https://mp.weixin.qq.com/s/v1gINxg5vMh86kdOOmqc6A 像是 IDM、油猴脚本管理器、uBblock 等扩展都会受到影响&#xff0c;后续将无…

DevOps引领数字化转型新趋势

DevOps帮助数字化转型 在数字化转型的大潮中&#xff0c;DevOps作为一种文化、运动和实践&#xff0c;已经成为推动企业快速适应市场变化、提高竞争力的关键因素。DevOps的核心在于打破开发&#xff08;Development&#xff09;和运维&#xff08;Operations&#xff09;之间的…

ctfshow

1,web21 Basic认证采用Base64加密方式&#xff0c;Base64解码字符串发现是 用户名:密码 的格式进行Base64编码。 密码shark63 2,web22 用 子域名扫描器 扫出flag.ctf.show拿到flag&#xff0c;但这个域名已经没了所以就直接交的官方提供的flag。 3,web23 这段PHP代码是一个简单…

从 0 到 1 掌握部署第一个 Web 应用到 Kubernetes 中

文章目录 前言构建一个 hello world web 应用项目结构项目核心文件启动项目 检查项目是否构建成功 容器化我们的应用编写 Dockerfile构建 docker 镜像推送 docker 镜像仓库 使用 labs.play-with-k8s.com 构建 Kubernetes 集群并部署应用构建 Kubernetes 集群环境编写部署文件 总…

数据结构与算法——1120——时间空间效率问题求边界值

目录 1、效率问题 1、时间复杂度 1、O(1) 2、O(n) 3、O(n) 或O(n*log2n)——n倍的log以2为底n的对数 例题 4、O(n) 2、空间复杂度 3、数组和链表 2、面试题之求边界值 题目 解答 &#xff08;1&#xff09;-i &#xff08;2&#xff09;~i &#xff08;3&#x…

爬虫与反爬-Ja3指纹风控(Just a moment...)处理方案及参数说明

概述&#xff1a;本文将针对 Ja3 指纹检测风控进行处理&#xff0c;举例了一个案例并使用两种不同的破解方案进行突破&#xff0c;同时深入了解指纹间不同字符所代表的含义 指纹检测背景&#xff1a; 1、每一个设备、软件都有独属于自己的设备信息、版本号、加密算法、椭圆算…

【JUC-JMM】Java Memory Model Java内存模型

Java内存模型--JMM 一、JMM是什么&#xff1f;二、Happens-Before原则三、JMM有什么用&#xff1f; 一、JMM是什么&#xff1f; JMM&#xff0c;全拼Java Memory Model&#xff0c;翻译过来就是Java内存模型。 那么&#xff0c;我们不禁思索&#xff0c;Java内存模型有什么用&…

SpringAI:Java 开发的智能新利器

一、SpringAI 简介 随着人工智能技术的飞速发展&#xff0c;越来越多的开发者开始探索如何将 AI 能力集成到现有的应用中来提升产品的智能化水平。Spring AI 正是为 Java 开发者提供的一款强大的 AI 框架&#xff0c;使得这一集成过程变得前所未有的简单和高效。 本文将深入探…

在Excel中处理不规范的日期格式数据并判断格式是否正确

有一个Excel表&#xff0c;录入的日期格式很混乱&#xff0c;有些看着差不多&#xff0c;但实际多一个空格少一个字符很难发现&#xff0c;希望的理想格式是 1980-01-01&#xff0c;10位&#xff0c;即&#xff1a;“YYYY-mm-dd”&#xff0c;实际上数据表中这样的格式都有 19…

【我在CSDN成长】我的五周年创作纪念日

感叹 五年的时光匆匆而过&#xff0c; 像一阵风&#xff0c;拂过岁月的湖面&#xff0c; 泛起层层涟漪&#xff0c;又悄然离去。 曾经的欢笑与泪水&#xff0c; 那些奋斗的日夜&#xff0c; 如同电影般在脑海中放映&#xff0c; 却已成为遥远的回忆。 五年&#xff0c;说长不长…

Jmeter中的定时器

4&#xff09;定时器 1--固定定时器 功能特点 固定延迟&#xff1a;在每个请求之间添加固定的延迟时间。精确控制&#xff1a;可以精确控制请求的发送频率。简单易用&#xff1a;配置简单&#xff0c;易于理解和使用。 配置步骤 添加固定定时器 右键点击需要添加定时器的请求…

BERT 详解

BERT简介 BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是由 Google 在 2018 年提出的一种预训练语言模型。BERT 在自然语言处理&#xff08;NLP&#xff09;领域取得了重大突破&#xff0c;因为它能够有效地捕捉文本的上下文信息&am…

macos 14.0 Monoma 修改顶部菜单栏颜色

macos 14.0 设置暗色后顶部菜单栏还维持浅色&#xff0c;与整体不协调。 修改方式如下&#xff1a;

数据库-MySQL-Dynamic-Datasource源码解析

文章目录 前言一、简介二、整体流程三、核心解析四、总结 前言 多数据源的应用在日常项目中也是很常见的场景。 dynamic-datasource的功能&#xff0c;用起来的确很方便&#xff0c;只需要一个DS注解&#xff0c;加上一些简单的配置即可完成多数据源的切换。究竟是怎么做到的…

YB2503HV:高效率降压IC,助力电动车、太阳能设备等领域的能源转换

今天我要向大家介绍一款引人注目的产品—— YB2503HV 100V 3A SOP8内置MOS 高效率降压IC。这款单片集成芯片具备可设定输出电流的开关型降压恒压驱动器功能&#xff0c;可广泛应用于电动车、太阳能设备、电子电池充电等领域。让我们一起来看看它的特点和应用吧&#xff01; 首先…

架构-微服务架构

文章目录 前言一、系统架构演变1. 单体应用架构2. 垂直应用架构3. 分布式架构4. SOA 架构5. 微服务架构 二. 微服务架构介绍1. 微服务架构的常见问题2. 微服务架构的常见概念3. 微服务架构的常见解决方案4. 解决方案选型 三. Spring Cloud Alibaba介绍1. 主要功能2. 组件 前言 …

【一个简单的整数问题2——线段树】

题目 代码 下面的两个代码的区别在于modify的分类&#xff0c;modify最简单的分类方式是存在性分类&#xff0c;另一种类似某些query采用的三段式分类&#xff0c;详细见代码 存在性 #include <bits/stdc.h> using namespace std; using ll long long; const int N 1…

通用网络安全设备之【防火墙】

概念&#xff1a; 防火墙&#xff08;Firewall&#xff09;&#xff0c;也称防护墙&#xff0c;它是一种位于内部网络与外部网络之间的网络安全防护系统&#xff0c;是一种隔离技术&#xff0c;允许或是限制传输的数据通过。 基于 TCP/IP 协议&#xff0c;主要分为主机型防火…

如何启动 Docker 服务:全面指南

如何启动 Docker 服务:全面指南 一、Linux 系统(以 Ubuntu 为例)二、Windows 系统(以 Docker Desktop 为例)三、macOS 系统(以 Docker Desktop for Mac 为例)四、故障排查五、总结Docker,作为一种轻量级的虚拟化技术,已经成为开发者和运维人员不可或缺的工具。它允许用…