C# C中的整数值出错#
代码如下。 当我在控制台中输入t=2的值时,它会被打印为50,同样地,它会打印51,52的3,4,以此类推C# C中的整数值出错#,c#,C#,代码如下。 当我在控制台中输入t=2的值时,它会被打印为50,同样地,它会打印51,52的3,4,以此类推 class Program { static void Main(string[] args) { int h = 0; int t = 0; Console.WriteLine("Hello India!!"); Console.WriteLine("E
class Program
{
static void Main(string[] args)
{
int h = 0;
int t = 0;
Console.WriteLine("Hello India!!");
Console.WriteLine("Enter the no. of test cases");
t= Convert.ToInt32(Console.Read());
Console.WriteLine(t);
for (int n = 1; n < t;n++ )
{
Console.WriteLine("Enter the String");
String str = Console.ReadLine();
for (int i = 0; i < str.Length; i++)
{
if ((str[i] == 'A') || (str[i] == 'D') || (str[i] == 'O') || (str[i] == 'P') || (str[i] == 'Q') || (str[i] == 'R'))
h = h + 1;
else if (str[i] == 'B')
h = h + 2;
else
continue;
}
Console.WriteLine(h);
}
}
}
类程序
{
静态void Main(字符串[]参数)
{
int h=0;
int t=0;
Console.WriteLine(“你好,印度!!”);
Console.WriteLine(“输入测试用例的编号”);
t=Convert.ToInt32(Console.Read());
控制台写入线(t);
对于(int n=1;n
您需要使用Console.ReadLine()
,而不是Console.Read()
。这将返回一个字符串
,该字符串将正确转换为数字2
t = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(t);
'2'
的ASCII码是50,依此类推。
如果仔细查看此表,您会发现'2'
的符号实际上具有值50
Console.Read()
返回一个整数,更具体地说,它返回一个整数,表示您输入的第一个字符,因此假设我输入a
,Console.Read()
将吐出97
,如果我输入A
它会给我65
,如果我写AB
它也会给我65
,因为它读取流中的第一个字符,并返回其整数值
相反,您应该做的是使用
Console.ReadLine()
它接受任何输入,并将其作为字符串返回,然后您可以将其解析为整数,因此如果我给它2
,它将返回“2”
,然后您可以通过Convert.ToInt32()
运行该命令,并从中获取整数。到底出了什么问题?问题是什么?输入t=2的值将在Console.Writeline(t)中打印t=50的值,因此循环运行50次