Vin*_*aes 2 c# variables input
我正在尝试创建一个简单的程序来计算平均值.用户应输入一个正数,然后我创建一个循环,从0到输入的数字相加.然后平均值是总数除以输入的数字.
问题:当我输入一个数字,例如10时,变量变为58.对于我输入的任何值,它总是添加48.任何人都有关于这个问题的线索?
这是代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace inClass1
{
class Loops
{
static void Main(string[] args)
{
int total = 0;
int num;
Console.Write("Enter a positive number: ");
num = Convert.ToInt32(Console.Read());
for (int i = 0; i <= num; i++)
{
total = total + i;
}
double average = total / (double)num;
Console.WriteLine("The average is = " + average);
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是因为Console.Read方法读取第一个char并返回其ASCII值.它只读取一个字符,因此您不能同时读取多个数字.为了解决这个问题只需使用Console.ReadLine采取string作为输入:
um = Convert.ToInt32(Console.ReadLine());
Run Code Online (Sandbox Code Playgroud)
在用户输入无效号码的情况下,这将失败.为了防止你可以查看int.TryParse方法.