所以我正在做一个在线编码挑战,遇到了这个让我难过的问题:这是我的代码: static void Main(String[] args) { int noOfRows = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < noOfRows; i++) { string odds = ""; string evens = ""; //get the input word from console string word = Console.ReadLine(); for (int j = 0; j < word.Length; j++) { //if the string's current char is even-indexed... if (word[j] % 2 == 0) { evens += word[j]; } //if the string's current char is odd-indexed... else if (word[j] % 2 != 0) { odds += word[j]; } } //print a line with the evens + odds Console.WriteLine(evens + " " + odds); } }本质上,这个问题要我从控制台行获取字符串并在左侧打印偶数索引字符(从 index=0 开始),后跟一个空格,然后是奇数索引字符。所以当我尝试“Hacker”这个词时,我应该看到打印为“Hce akr”的行。当我调试它时,我看到代码成功地将字母'H'放在左边(因为它是index = 0,因此是偶数),并将字母'a'放在右边(奇数索引)。但是当它到达字母“c”时,它不是通过第一个 IF 路径(偶数索引),而是跳过它并转到奇数索引路径,并将其放在右侧?有趣的是,当我尝试“Rank”这个词时,它工作正常并打印出正确的语句:“Rank”,但其他词却没有。我得到不同的结果真是奇怪。我错过了什么?
- 3 回答
- 0 关注
- 101 浏览
添加回答
举报
0/150
提交
取消