我尝试创建一个程序,平均得分为5分。首先,我创建了5个由用户声明的变量。但我有一个问题,我无法自己解决。我的代码输出显示测试的平均分数,可能我在某个地方有错误,我希望你帮助我找到它。 这是完整的代码:
using System;
namespace Test
{
class MathTest
{
static void Main()
{
string a, b, c, d, e;
Console.WriteLine("1st Test Score: ");
a = Console.ReadLine();
Console.WriteLine("2nd Test Score: ");
b = Console.ReadLine();
Console.WriteLine("3rd Test Score: ");
c = Console.ReadLine();
Console.WriteLine("4th Test Score: ");
d = Console.ReadLine();
Console.WriteLine("5th Test Score: ");
e = Console.ReadLine();
Console.WriteLine("Your Average Test Score is: {0}",
Convert.ToInt32(a + b + c + d + e) / 5);
}
}
}
希望最后一句中只有一个错误,即公式。谢谢你的关注。
答案 0 :(得分:2)
正如其他人所说的那样,您需要将字符串转换为数字 first ,然后添加它们,然后将它们分开。
这解决了你的一些问题。但是,并非所有问题都已结束。
下一个:如果有人输入75.5的分数怎么办?教师有时会给出半分。整数不是正确的数据类型。在C#中,对于精确的十进制数量,请使用十进制;对于物理量(如长度或质量)的数量,请使用 double 。您应该将所有字符串转换为 decimal ,而不是 int 。
下一步:如果有人输入“Hello”或者什么都没有输入,而不是数字怎么办?你的程序会崩溃。您需要使用TryParse
等检测此情况的方法,然后您需要相应地提示用户重新输入数字。
现在,您不应该重复所有代码五次。 创建一个方法,在循环中提示用户输入一个数字,并在成功完成后返回该数字。始终将问题分解为更小的问题,然后编写解决该问题的方法。这样,即使程序逻辑变得复杂,您的主程序也会保持简单。
最后和最重要的:今天是学习如何使用调试器的好日子。学习如何自己找到这样的问题,而不是让互联网上的陌生人为你做你的工作。 大多数计算机编程都在调试,因此请学习现在的技能。
答案 1 :(得分:0)
首先连接字符串,然后将结果转换为Int并除以5.
先对每个数字进行投射,然后再对它们进行数学运算。
答案 2 :(得分:0)
您正在转换连接的字符串。假设用户输入: 1 2 3 4 五 然后(a + b + c + d + e)是" 12345"你正在计算12345/5。您需要先分别抛出所有字符串。
答案 3 :(得分:0)
你必须在总结之前进行转换。
Console.WriteLine("Your Average Test Score is: {0}", (Convert.ToInt32(a) + Convert.ToInt32(b) + Convert.ToInt32(c) + Convert.ToInt32(d) + Convert.ToInt32(e)/5)
答案 4 :(得分:0)
您应该Convert.ToInt32
每个项目a
.. e
):
...
Console.WriteLine("Your Average Test Score is: {0}",
(Convert.ToInt32(a) +
Convert.ToInt32(b) +
Convert.ToInt32(c) +
Convert.ToInt32(d) +
Convert.ToInt32(e)) / 5.0);
另一个(可能的)问题是整数除法:如果你想得到浮点结果(例如平均得分3.5
),你应该除以5.0
,而不是{{ 1}}
答案 5 :(得分:0)
好吧,我在评论和答案中发现了我的错误并修复了代码(仅更改了中间部分)
int a, b, c, d, e;
Console.WriteLine("1st Test Score: ");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("2nd Test Score: ");
b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("3rd Test Score: ");
c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("4th Test Score: ");
d = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("5th Test Score: ");
e = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Your Average Test Score is: {0}", Convert.ToInt32(a + b + c + d + e) / 5.0);