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;
            }
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络:应用层知识点概述及习题

网课资源&#xff1a; 湖科大教书匠 1、概述 习题1 1 在计算机网络体系结构中&#xff0c;应用层的主要功能是 A. 实现进程之间基于网络的通信 B. 通过进程之间的交互来实现特定网络应用 C. 实现分组在多个网络上传输 D. 透明传输比特流 2 以下不属于TCP/IP体系结构应用层范畴…

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

uniapp+vue2+uview2.0导航栏组件二次封装

样式 代码 <template><view class"navBar"><u-navbar :title"title" :titleColor"titleColor" :bgColor"bgColor" :safeAreaInsetTop"safeAreaInsetTop":autoBack"true" leftClick"leftClic…

【Git】常用命令汇总

目录 一.安装及配置 1.在 Windows 上安装 2.用户信息 3.差异分析工具 二.基础 1.创建仓库 2.提交与修改 三.分支管理 1.创建分支 2.合并分支 四.远程操作 1.管理 Git 仓库中的远程仓库 2.数据的获取与推送 五.标签 1.创建轻量标签和附注标签 2.查看标签和标签信…

PIMPL模式和D指针

目录 一、PIMPL模式概念&#xff1a; 1.1 pImpl手法的优势和目的 1.1.1屏蔽实现细节 1.2 .2加速编译 1.2.3 更好的二进制兼容性 1.2.4 惰性分配 二、PIMPL模式项目中应用&#xff1a; 2.1 项目背景 2.2 对外接口代码&#xff1a; 2.2.1 对外库接口头文件 2.2.2 对外…

Android显示系统(01)- 架构分析

一、前言&#xff1a; Android是基于Linux的&#xff0c;而显示设备的驱动也都是和Linux普通设备一样去管理&#xff0c;也就是说归根结底还是要按照Linux的方式组织数据送给LCD&#xff0c;因此&#xff0c;我们理解Android设计的这一套复杂的显示系统时候&#xff0c;一定要…

15分钟做完一个小程序,腾讯这个工具有点东西

我记得很久之前&#xff0c;我们都在讲什么低代码/无代码平台&#xff0c;这个概念很久了&#xff0c;但是&#xff0c;一直没有很好的落地&#xff0c;整体的效果也不算好。 自从去年 ChatGPT 这类大模型大火以来&#xff0c;各大科技公司也都推出了很多 AI 代码助手&#xff…

跨标签通信的几种方式

以前面试被问到过&#xff0c;就了解了一下。还有其他方式&#xff0c;但是实际开发中&#xff0c;使用第一个就可以了 目录 1. 使用BroadcastChannel 2. 使用SharedWorker 3. 使用webSocket 1. 使用BroadcastChannel 它允许同源&#xff08;协议、域名、端口都相同&#x…

深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节

文章目录 一、离线量化基础概念1&#xff09;离线量化定义2&#xff09;离线量化优缺点3&#xff09;如何生产一个硬件能跑的量化模型&#xff1f;4&#xff09;离线量化的类型5&#xff09;如何计算scale&#xff0c;zero_point?6&#xff09;离线量化概念7&#xff09;PTQ与…

HTML详解(1)

1.HTML定义 HTML&#xff1a;超文本标记语言。超文本&#xff1a;通过链接可以把多个网页链接到一起标记&#xff1a;标签&#xff0c;带括号的文本后缀&#xff1a;.html 标签语法&#xff1a;<strong>需加粗文字</strong> 成对出现&#xff0c;中间包裹内容&l…

【21-30期】Java技术深度剖析:从分库分表到微服务的核心问题解析

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;Java &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 文章题目&#xff1a;Java技术深度剖析&#xff1a;从分库分表到微服务的核心问题解析 摘要&#xff1a; 本…

Jmeter中的配置原件

2&#xff09;配置原件 1--CSV Data Set Config 用途 参数化测试&#xff1a;从CSV文件中读取数据&#xff0c;为每个请求提供不同的参数值。数据驱动测试&#xff1a;使用外部数据文件来驱动测试&#xff0c;使测试更加灵活和可扩展。 配置步骤 准备CSV文件 创建一个CSV文…

Redis持久化、主从及哨兵架构详解

Redis持久化 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c;Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中。 你可以对Redis进行设置&#xff0c;让它在“N秒内数据集至少有M个改动”这一条件被满足时&#xff0c;自动保存一次数据集。 比…

双向链表、循环链表、栈

双向循环链表 class Node:#显性定义出构造函数def __init__(self,data):self.data data #普通节点的数据域self.next None #保存下一个节点的链接域self.prior None #保存前一个节点饿链接域 class DoubleLinkLoop:def __init__(self, node Node):self.head nodeself.siz…

【青牛科技】D1671 75Ω 带4级低通滤波的单通道视频放大电 路芯片介绍

概 述 &#xff1a; D1671是 一 块 带 4级 低 通 滤 波 的 单 通 道 视 频 放 大 电 路 &#xff0c; 可 在3V或5V的 低 电 压 下 工 作 。 该 电 路 用 在 有 TV影 象 输 出 功 能 的 产 品 上 面&#xff0c;比如 机 顶 盒 &#xff0c;监 控 摄 象 头 &#xff0c;DVD&#…

Linux服务器生成SSH 密钥对与 GitLab 仓库进行交互

目录 生成 SSH 密钥对 将公钥添加到 GitLab 测试 SSH 连接 生成 SSH 密钥对 在执行脚本的机器上打开终端&#xff0c;执行以下命令&#xff08;假设使用默认的 RSA 算法&#xff0c;一路回车使用默认设置即可&#xff0c;也可以根据需要指定其他算法和参数&#xff09;&…

关于SpringBoot集成Kafka

关于Kafka Apache Kafka 是一个分布式流处理平台&#xff0c;广泛用于构建实时数据管道和流应用。它能够处理大量的数据流&#xff0c;具有高吞吐量、可持久化存储、容错性和扩展性等特性。 Kafka一般用作实时数据流处理、消息队列、事件架构驱动等 Kafka的整体架构 ZooKeeper:…

在Unity中实现物体动画的完整流程

在Unity中&#xff0c;动画是游戏开发中不可或缺的一部分。无论是2D还是3D游戏&#xff0c;动画都能为游戏增添生动的视觉效果。本文将详细介绍如何在Unity中为物体添加动画&#xff0c;包括资源的准备、播放组件的添加、动画控制器的创建以及动画片段的制作与调度。 1. 准备动…

自定义协议

1. 问题引入 问题&#xff1a;TCP是面向字节流的&#xff08;TCP不关心发送的数据是消息、文件还是其他任何类型的数据。它简单地将所有数据视为一个字节序列&#xff0c;即字节流。这意味着TCP不会对发送的数据进行任何特定的边界划分&#xff0c;它只是确保数据的顺序和完整…

Spring Boot 3.4.0 发行:革新与突破的里程碑

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…