use System;
namespace my
{
    class test
    {
        static void Main()
        {
            int i = 0;
            int n;
            Console.WriteLine("请输入N值:");
            n = Console.Read();
            while (i < n)
            {
                Console.WriteLine("{0}的平方是{1}", i, i * i);
                i++;  
            }
            Console.ReadKey();
        }
    }
}程序目的是:要根据输入的N值来确定要输出的行数。比如说我输入值为10,结果应该输出0-9这十个数的平方,但是在运行以后却出现0-48的平方,而且当换成别的数时,此数每增加十,结果中才增加一个。比如在换成20时,输出的是0-49,为30时,输出的是0-50,以此类推。不知道问题出现在哪里!
        请求各位高手给以指教!

解决方案 »

  1.   


    你把这句n = Console.Read();
    换成这句n = Convert.ToInt32(Console.ReadLine());
      

  2.   


                n = Convert.ToInt32(Console.Read());
      

  3.   


    Convert.ToInt32(Console.ReadLine());
      

  4.   

    Convert.ToInt32(Console.ReadLine());
    这个转换就行了
      

  5.   

    你这段代码用Console.Read()即使转换了也不是你输入的那个数字。要使用Console.ReadLine()然后在转换Console.Read()  : msdn上的解释是这样的:在键入输入字符时,Read 方法会阻止其返回;该方法在您按 Enter 键时终止。按 Enter 会在输入内容后面追加一个与平台有关的行终止序列(例如,Windows 追加一个回车符和换行符序列)。