Console.Write("输入学生百分制的成绩:");
            int Grade = (int)Console.Read();
            Console.WriteLine("grade={0}", Grade);
            switch (Grade / 10)
            {
                case 9:
                case 10: Console.WriteLine("你的成绩为:A");
                    break;
                case 8: Console.WriteLine("你的成绩为:B");
                    break;
                case 7: Console.WriteLine("你的成绩为:C");
                    break;
                case 6: Console.WriteLine("你的成绩为:D");
                    break;
                default: Console.WriteLine("你的成绩为:E");
                    break;
            }
            Console.Read();
我输入95结果是57,85结果是56,75结果是55,结果都为E;另外为什么最后用Console.Read()程序却停不住,不能把最终结果停住。

解决方案 »

  1.   

    int Grade = (int)Console.ReadLine(); 
      

  2.   

    错了应该是int Grade = int.Parse(Console.ReadLine()); 
      

  3.   

    Console.Read()是读一个字符,
    然后你再把它强制转换成int,实际是得到的是它的ASCII码
      

  4.   

    string s="";
    Console.WriteLine("");           
     s = Console.ReadLine();           
    Grade  = Int32.Parse(s);Console.ReadLine();
      

  5.   

     能对int.Parse()解释一下吗,什么时候用?
      

  6.   

    谢谢!能对int.Parse()解释一下吗,什么时候用?
      

  7.   

    输入的一般字符串
    所以需要转换为Int类型
      

  8.   

    Convert 和 parse应该都行!
      

  9.   

    结合各位专家的结果,
    楼主错的是用read方法,read读一个字符, 
    然后你再把它强制转换成int,实际是得到的是它的ASCII码
    首先你应该判断一下你输入的是否是数字,可以用正则表达式用int.parse 是也行的
    总只你用首先判断
    然后用console.readline()来获得一个输入的数字,转换的话用convert.Todouble 比较好,因为成绩不一定是整数