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()程序却停不住,不能把最终结果停住。
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()程序却停不住,不能把最终结果停住。
然后你再把它强制转换成int,实际是得到的是它的ASCII码
Console.WriteLine("");
s = Console.ReadLine();
Grade = Int32.Parse(s);Console.ReadLine();
所以需要转换为Int类型
楼主错的是用read方法,read读一个字符,
然后你再把它强制转换成int,实际是得到的是它的ASCII码
首先你应该判断一下你输入的是否是数字,可以用正则表达式用int.parse 是也行的
总只你用首先判断
然后用console.readline()来获得一个输入的数字,转换的话用convert.Todouble 比较好,因为成绩不一定是整数