我被困在额外的学分课程上。它是:
编写一个程序,使用“字母移位”解码从文本文件中读取的秘密消息。 你必须:
1。)使用StreamReader从附加的MessageIn.txt文件中读取编码消息(参见附带的演示), 2.)计算文件中每个字符的实例, 3.)消息中最常见的字符应为“E”。使用此信息计算班次的数量, 4.)打印出已解码的消息。
他将更改编码的.txt消息,因此我们无法找到最常用的字母,因为我们必须编写代码来查找最常用的字符。
我现在拥有的是:
namespace Assign_14
{
class Program
{
private static StreamReader inFile;
static void Main(string[] args)
{
try
{
inFile = new StreamReader("MessageIN.txt");
string s = inFile.ReadLine();
int[] freq = new int[26];
for (int i = 0; i < s.Length; i++)
{
string temp = s.Substring(i, 1);
int itemp = (int)temp.ToCharArray()[0];
freq[itemp - 65]++;
}
for (int i = 0; i < 26; i++)
{
Console.WriteLine(i + " " + freq[i]);
}
}
catch (System.IO.IOException exc)
{
Console.WriteLine("ERROR");
}
}
}
} 如果有人能帮助我做下一步该做的事情会很棒。如果有人完成并解释他们是如何得到它的,我会给他们买一个他们选择的10美元或更少的蒸汽游戏。
答案 0 :(得分:0)
虽然我不认为发布答案代码为你做作业是合适的,但我会给你一个指针,如果你考虑大写和小写字母,那么freq数组应该大于26你也可以设置一个变量maxCount = 0,maxIndex = 0,并写一个for循环来遍历你的freq数组并找到最大值。如果该值大于当前的maxCount,请同时设置maxCount和maxIndex。最后,e的ASCII码和你的maxIndex之间的差异可以让你转变。