/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:判断S所指的字符串是否回文(即顺读和逆读相同的字符串) * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 09 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */ [csharp] <span style="font-size:24px;">using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication_do_while { class Program { static void Main(string[] args) { Console.WriteLine("这是一个判断您所输入的字符串是否“回文”的程序"); Console.Write("请输入您所要判断的字符串:"); string s = Console.ReadLine(); char[] c = s.ToCharArray(); int i = c.Length; int j = c.Length-1; char[] c1 = new char[c.Length]; //利用foreach语句循环输出数组中每一个元素 foreach (char var in c) { c1[j] = var; --j; //字符串反向读取 } //bool m = c1.Equals(c); // Console.WriteLine("返回值为:{0}", m); for (int n = 0; n < c.Length; ++n) { if (c1[n] != c[n]) { foreach (char var in c) { Console.Write(var); //依次读取字符串中的元素 } Console.Out.WriteLine("不是回文数。"); break; } if (n == c.Length - 1) { foreach (char var in c) { Console.Write(var); } Console.Out.WriteLine( " 是回文数。"); } } Console.ReadKey(); } } } </span>
运行结果:


问题: 1.我用c1.Equals(c)函数,不管c1 和 c两个字符串是否相等,返回值都是False,各位大侠有知道的帮我解答一下,我把这个问题发到论坛上,大家也可以在论坛上给我发帖,谢谢大家了。 以下是这个问题的链接地址: [csharp] //bool m = c1.Equals(c); // Console.WriteLine("返回值为:{0}", m); 以下这两行代码的位置在源程序中注释掉了,大家可以解除注释运行一下,看是否和我说的一样。 经验积累: 1.我学会了foreach语句的使用方法, [csharp] foreach (char var in c) { Console.Write(var); //依次读取字符串中的元素 }
先执行 in c,在执行 char var.
|