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(xi))

{

xi = char.ToUpper(xi);

}

// 如果字符是大写字母,转换为小写字母

else if (char.IsUpper(xi))

{

xi = char.ToLower(xi);

}

// 其他字符保持不变

}

}

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

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 = sequence0; // K1是序列中的第一个元素

int left = 1; // 左指针,从K1的下一个位置开始

int right = sequence.Length - 1; // 右指针,从序列末尾开始

// 使用双指针法进行重排

while (left <= right)

{

// 从左向右找到第一个大于等于K1的元素

while (left <= right && sequenceleft < k1)

{

left++;

}

// 从右向左找到第一个小于K1的元素

while (left <= right && sequenceright >= k1)

{

right--;

}

// 如果left小于right,说明找到了需要交换的元素对

if (left < right)

{

int temp = sequenceleft;

sequenceleft = sequenceright;

sequenceright = 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(x0);

}

// 函数用于删除字符串中的空格、标点符号以及下标为奇数的字符

static void TransformString(string\[\] x)

{

// 用于存储处理后的字符串

string result = "";

// 遍历字符串中的每个字符

for (int i = 0; i < x0.Length; i++)

{

char c = x0i;

// 检查是否为空格、标点符号或下标为奇数的字符

if (!(char.IsWhiteSpace(c) || char.IsPunctuation(c) || i % 2 == 1))

{

// 如果不是,则添加到结果字符串中

result += c;

}

}

// 更新数组x中的字符串为处理后的字符串

x0 = 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 (xi.CompareTo(xj)<0)

{

string temp = xi;

xi = xj;

xj = temp;

}

}

}

}

相关推荐
come112347 分钟前
剪映零基础教程
java·linux·运维
桐盛科技22 分钟前
拒绝“漂绿”风险:基于边缘计算的碳排放数据清洗算法与实时校验逻辑
人工智能·算法·边缘计算
geovindu23 分钟前
CSharp: Wordcloud
开发语言·后端·c#·.net·.netcore·词云
Tongzhi202628 分钟前
通芝科技考勤软件三大发展趋势:AI大模型、无感识别与数据底座
大数据·科技·算法·爬山算法
eBest数字化转型方案1 小时前
Route Optimization for FMCG:多目标排线算法的工程实现
大数据·人工智能·算法
飘忽不定的bug1 小时前
ubuntu20.04交叉编译QT5.15.12(RK3562+ubuntu20.04)
linux·qt·ubuntu
库玛西1 小时前
深入浅出Linux select网络模型:从底层位图原理到C++面向对象高级封装
linux·服务器·网络·c++·ubuntu
Tingjct1 小时前
线程详细讲解---聚焦linux
linux·服务器·jvm
ComputerInBook1 小时前
linux包管理工具——yum(YellowdogUpdaterModified)
linux·运维·服务器·yum·dnf
霸道流氓气质1 小时前
通义千问 Chat 模型高级用法:Function Calling / Structured Output / 多轮对话
linux·运维·windows