我必须制作一个小程序,提示用户测试标记并确定用户是否通过了。小于50的测试标记是失败的。
这是我的代码。它给了我2个错误(其中有星星。)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Prac6Question2
{
class Program
{
static void Main(string[] args)
{
double testMark;
string result;
testMark = GetTestMark(*testMark*);
result = DetermineResult(testMark, *result*);
Display(testMark, result);
}
static double GetTestMark(double testMark)
{
Console.WriteLine("Your test result: ");
testMark = double.Parse(Console.ReadLine());
return testMark;
}
static string DetermineResult(double testMark, string result)
{
if (testMark < 50)
result = "Fail";
else
result = "Pass";
return result;
}
static void Display(double testMark, string result)
{
Console.WriteLine("Your test result: {0}", result);
Console.ReadLine();
}
}
}
请帮忙。谢谢。
答案 0 :(得分:1)
您无需将这些值传递给各自的功能。删除参数并在函数中引入新变量。
testMark = GetTestMark();
result = DetermineResult(testMark);
答案 1 :(得分:1)
答案 2 :(得分:1)
为了让GetTestMark
更改调用者范围内的值,您需要通过引用传递double,即:
static void GetTestMark(out double testMark)
&#34; out&#34;指定该值将在此方法中初始化。
然后通过以下方式调用:
GetTestMark(out testMark);
但是,由于您要返回该值,因此根本不需要传递该值:
static double GetTestMark()
{
double testMark; // Declare a local
Console.WriteLine("Your test result: ");
testMark = double.Parse(Console.ReadLine());
return testMark;
}
通过以下方式致电:
testMark = GetTestMark();
结果是相同的 - 因为您返回值,没有理由通过它。与上述相同类型的更改也会使其正常工作。
答案 3 :(得分:0)
很简单,应该删除已加星标的内容。您正在传递一个您不使用的变量,编译器很可能抱怨未初始化的变量
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Prac6Question2
{
class Program
{
static void Main(string[] args)
{
double testMark;
string result;
testMark = GetTestMark();
result = DetermineResult(testMark);
Display(testMark, result);
}
static double GetTestMark()
{
double testMark;
Console.WriteLine("Your test result: ");
testMark = double.Parse(Console.ReadLine());
return testMark;
}
static string DetermineResult(double testMark)
{
string result;
if (testMark < 50)
result = "Fail";
else
result = "Pass";
return result;
}
static void Display(double testMark, string result)
{
Console.WriteLine("Your test result: {0}", result);
Console.ReadLine();
}
}
}