C# 如何将一个数组中的值重写为第二个数组,每个数组中的两个字母都被翻转?(C)
这是一个家庭作业,我已经做了很长时间了,但还没有弄清楚。如果你需要的话,这里有我老师的确切指示;我被困在第五号: 1让用户输入他们想要编码的句子。 2如果消息中的字符数为奇数,请将空格连接到它们的消息,以便我们的消息始终为偶数个字母。 3现在创建一个新的char[],将其称为unCoded,其中每个元素都是来自您的秘密消息的字母。 4现在创建一个空的第二个字符[],将其称为已编码,并定义其长度等于另一个未编码字符[]的长度。 5现在将未编码数组中的值写入编码数组,但每翻转2个字母。 6然后写出原始的未编码信息。 7然后写出新的编码信息 他还说,第五步必须在一个循环中完成 任何帮助都将不胜感激,谢谢 到目前为止,我所拥有的:C# 如何将一个数组中的值重写为第二个数组,每个数组中的两个字母都被翻转?(C),c#,arrays,loops,C#,Arrays,Loops,这是一个家庭作业,我已经做了很长时间了,但还没有弄清楚。如果你需要的话,这里有我老师的确切指示;我被困在第五号: 1让用户输入他们想要编码的句子。 2如果消息中的字符数为奇数,请将空格连接到它们的消息,以便我们的消息始终为偶数个字母。 3现在创建一个新的char[],将其称为unCoded,其中每个元素都是来自您的秘密消息的字母。 4现在创建一个空的第二个字符[],将其称为已编码,并定义其长度等于另一个未编码字符[]的长度。 5现在将未编码数组中的值写入编码数组,但每翻转2个字母。 6然后写出原
static void Main(string[] args)
{
Console.WriteLine("Enter the sentence you want encoded: ");
string userInput = Console.ReadLine();
int remainder = userInput.Length % 2;
if (remainder!=0)
{
userInput = userInput + " ";
}
char[] unCoded = userInput.ToArray();
char[] coded=unCoded;
//coded.Length = unCoded.Length;
for (int i = 0; i < unCoded.Length; i=i+2)
{
coded[0] = unCoded[1];
coded[1] = unCoded[0];
}
string encoded = new string(coded);
Console.WriteLine("{0}", userInput);
Console.WriteLine("{0}", encoded);
Console.ReadKey();
}
在循环中不使用循环参数,所以只需将前两个值更改几次。考虑你在你的循环中做什么,作为你真正想要达到的第一步。使用i变量并知道它的第一个值是0。然后,当我增长时,循环将对接下来的两个值执行相同的操作 所以只要把i放在0的位置,把i+1放在1的位置
所以。。。到目前为止你有什么?它做了什么你没有预料到的事?所以你在对中翻转一个,编码的[0]被分配给未编码的[1]。我相信您可以认识到,下一步要做的事情是将编码[1]分配给未编码[0]。想一想你如何解决这样一个事实:你现在已经把数组索引硬编码了。是的,但是我怎么能让代码对每个字母都这样做,而不管用户输入的长度如何?你已经知道我在闲逛……: