C# 控制台应用程序 - 使用方法传递参数
C# Console Application - Using Methods to Pass Arguments
我有一份学校的申请作业,我一直在做,但一直坚持不下去。我不理解一些概念来完成我的程序。它很简单,我已经掌握了基本结构。有人可以帮助我理解和完成我的程序吗?以下是列出的信息:
以下是整体申请作业:
编写一个程序来显示一些数字的平均值。您的程序将包含三个用户定义的方法,分别名为 GetNums()、CalcAvg() 和 DspAvg()。在 GetNums() 中提示并从键盘读入 3 个实数。读取数字后,调用 CalcAvg() 将三个数字作为输入传递。 CalcAvg() 必须 RETURN(使用 return 语句)3 个数字的平均值。调用 CalcAvg() 后,调用 DspAvg() 显示平均值和输入的三个数字。您的程序不得包含任何具有 class 范围的变量(所有变量必须在方法内声明)。所有方法调用(GetNums()、CalcAvg() 和 DspAvg() 必须从 main() 调用)。使用正确的传球很重要。
您的输出应该与以下内容非常相似。
10.20、89.50、17.60的平均值为39.10。
将平均值四舍五入到小数点后两位。显示带两位小数的所有值。
GetNums() 将有三个参数,全部传递出去。 CalcAvg() 将有三个参数,全部通过副本传递。不要用四个! DspAvg() 将有四个参数,全部通过副本传递。
下面是我写的以下代码,但是根据上面的要求卡住了。
static void Main(string[] args)
{
int nu1, nu2, nu3, cavg;
GetNums();
CalcAvg();
DspAvg();
}
static void GetNums()
{
Console.Write("Please enter nu1: ");
nu1 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu2: ");
nu2 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu3: ");
nu3 = int.Parse(Console.ReadLine());
CalcAvg(DspAvg);
}
static void CalcAvg()
{
}
static void DspAvg()
{
}
}
}
您不能在一种方法中声明变量并在另一种方法中使用它们。第二种方法不知道第一种方法中的变量。
正如规范所说,你需要你的 GetNums() 有 3 个参数通过 out
static void GetNums(out decimal num1, out decimal num2, out decimal num3)
从这里开始。如果您需要更多帮助,请告诉我:)
我在这里做了一些假设。但我已经为您提供了一个 "working" 应用供您考虑
static void Main(string[] args)
{
int nu1, nu2, nu3, cavg;
GetNums(out nu1, out nu2, out nu3);
double average = CalcAvg(nu1, nu2, nu3);
DspAvg(average);
}
static void GetNums(out int nu1, out int nu2, out int nu3)
{
Console.Write("Please enter nu1: ");
nu1 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu2: ");
nu2 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu3: ");
nu3 = int.Parse(Console.ReadLine());
}
static double CalcAvg(int nu1, int nu2, int nu3)
{
return (nu1 + nu2 + nu3) / 3;
}
static void DspAvg(double average)
{
Console.WriteLine(Math.Round(average, 2));
}
好吧,我们不会帮你做功课,但我可以给你一些建议。您的 Main 应该只调用 GetNums()。 GetNums() 应该调用 CalcAvg() 传递从控制台读取的数字而不是 DspAvg() 函数。最后将CalcAvg()的返回值传递给DspAvg(),将结果显示到控制台。
开始编写一些代码,如果您遇到错误,我们将能够为您提供更多帮助。
您没有按照作业中的说明使用参数。下面是一个在一个方法中使用 out 参数并将其发送到另一个方法并返回值的示例:
double parameter, result;
methodOne(out parameter);
result = methodTwo(parameter);
方法:
static void methodOne(out double x) {
x = 42;
}
static double methodTwo(double x) {
return x;
}
这应该让您开始了解如何修改您的方法。
我会提供一些建议,但这是一个很好的入门编程问题。我非常建议您尝试自己解决这个问题,因为它使用了您将来会用到的基本编程概念。
您的变量 nu1、nu2、nu3 和 cavg 应该是 double 值。 int 不能用于存储十进制值。 (注意:要得到小数点后两位的值,应该使用Math.Round方法)
double nu1, nu2, nu3, cavg;
您似乎对如何将参数传递给方法感到困惑。例如,当您在 main 方法中调用 CalcAvg 方法时,您应该将从控制台读取的 3 个值传递给该方法。
static void Main(string[] args){
CalcAvg(nu1,nu2,nu3);
}
static void CalcAvg(double nu1, double nu2, double nu3){
}
通过这样做,您现在可以在 CalcAvg 方法中操作这些值。
最后,将值传递给方法并对其进行操作后,您将希望从该方法中 return 这些值。这可以通过 return 语句来完成。然后,您可以通过传入参数并将 returned 值存储在另一个变量中来调用此方法。
static void Main(string[] args){
double cavg;
cavg = CalcAvg(nu1,nu2,nu3);
}
static double CalcAvg(double nu1, double nu2, double nu3){
double cavg;
return cavg;
}
这三个原则应该可以帮助您完成这项作业。我强烈建议你自己做这个作业,不要从这个网站或任何其他网站上复制完整的答案。正确学习这些原则将帮助你在学术生涯的道路上走得更远。祝你好运:)
我有一份学校的申请作业,我一直在做,但一直坚持不下去。我不理解一些概念来完成我的程序。它很简单,我已经掌握了基本结构。有人可以帮助我理解和完成我的程序吗?以下是列出的信息:
以下是整体申请作业:
编写一个程序来显示一些数字的平均值。您的程序将包含三个用户定义的方法,分别名为 GetNums()、CalcAvg() 和 DspAvg()。在 GetNums() 中提示并从键盘读入 3 个实数。读取数字后,调用 CalcAvg() 将三个数字作为输入传递。 CalcAvg() 必须 RETURN(使用 return 语句)3 个数字的平均值。调用 CalcAvg() 后,调用 DspAvg() 显示平均值和输入的三个数字。您的程序不得包含任何具有 class 范围的变量(所有变量必须在方法内声明)。所有方法调用(GetNums()、CalcAvg() 和 DspAvg() 必须从 main() 调用)。使用正确的传球很重要。
您的输出应该与以下内容非常相似。
10.20、89.50、17.60的平均值为39.10。
将平均值四舍五入到小数点后两位。显示带两位小数的所有值。
GetNums() 将有三个参数,全部传递出去。 CalcAvg() 将有三个参数,全部通过副本传递。不要用四个! DspAvg() 将有四个参数,全部通过副本传递。
下面是我写的以下代码,但是根据上面的要求卡住了。
static void Main(string[] args)
{
int nu1, nu2, nu3, cavg;
GetNums();
CalcAvg();
DspAvg();
}
static void GetNums()
{
Console.Write("Please enter nu1: ");
nu1 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu2: ");
nu2 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu3: ");
nu3 = int.Parse(Console.ReadLine());
CalcAvg(DspAvg);
}
static void CalcAvg()
{
}
static void DspAvg()
{
}
}
}
您不能在一种方法中声明变量并在另一种方法中使用它们。第二种方法不知道第一种方法中的变量。 正如规范所说,你需要你的 GetNums() 有 3 个参数通过 out
static void GetNums(out decimal num1, out decimal num2, out decimal num3)
从这里开始。如果您需要更多帮助,请告诉我:)
我在这里做了一些假设。但我已经为您提供了一个 "working" 应用供您考虑
static void Main(string[] args)
{
int nu1, nu2, nu3, cavg;
GetNums(out nu1, out nu2, out nu3);
double average = CalcAvg(nu1, nu2, nu3);
DspAvg(average);
}
static void GetNums(out int nu1, out int nu2, out int nu3)
{
Console.Write("Please enter nu1: ");
nu1 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu2: ");
nu2 = int.Parse(Console.ReadLine());
Console.Write("Please enter nu3: ");
nu3 = int.Parse(Console.ReadLine());
}
static double CalcAvg(int nu1, int nu2, int nu3)
{
return (nu1 + nu2 + nu3) / 3;
}
static void DspAvg(double average)
{
Console.WriteLine(Math.Round(average, 2));
}
好吧,我们不会帮你做功课,但我可以给你一些建议。您的 Main 应该只调用 GetNums()。 GetNums() 应该调用 CalcAvg() 传递从控制台读取的数字而不是 DspAvg() 函数。最后将CalcAvg()的返回值传递给DspAvg(),将结果显示到控制台。
开始编写一些代码,如果您遇到错误,我们将能够为您提供更多帮助。
您没有按照作业中的说明使用参数。下面是一个在一个方法中使用 out 参数并将其发送到另一个方法并返回值的示例:
double parameter, result;
methodOne(out parameter);
result = methodTwo(parameter);
方法:
static void methodOne(out double x) {
x = 42;
}
static double methodTwo(double x) {
return x;
}
这应该让您开始了解如何修改您的方法。
我会提供一些建议,但这是一个很好的入门编程问题。我非常建议您尝试自己解决这个问题,因为它使用了您将来会用到的基本编程概念。
您的变量 nu1、nu2、nu3 和 cavg 应该是 double 值。 int 不能用于存储十进制值。 (注意:要得到小数点后两位的值,应该使用Math.Round方法)
double nu1, nu2, nu3, cavg;
您似乎对如何将参数传递给方法感到困惑。例如,当您在 main 方法中调用 CalcAvg 方法时,您应该将从控制台读取的 3 个值传递给该方法。
static void Main(string[] args){ CalcAvg(nu1,nu2,nu3); } static void CalcAvg(double nu1, double nu2, double nu3){ }
通过这样做,您现在可以在 CalcAvg 方法中操作这些值。
最后,将值传递给方法并对其进行操作后,您将希望从该方法中 return 这些值。这可以通过 return 语句来完成。然后,您可以通过传入参数并将 returned 值存储在另一个变量中来调用此方法。
static void Main(string[] args){ double cavg; cavg = CalcAvg(nu1,nu2,nu3); } static double CalcAvg(double nu1, double nu2, double nu3){ double cavg; return cavg; }
这三个原则应该可以帮助您完成这项作业。我强烈建议你自己做这个作业,不要从这个网站或任何其他网站上复制完整的答案。正确学习这些原则将帮助你在学术生涯的道路上走得更远。祝你好运:)