C#控制台应用程序 - 使用方法传递参数

时间:2015-04-21 21:31:30

标签: c# console-application

我从学校申请了一份申请,我一直在努力工作。我不理解完成我的程序的一些概念。这很简单,我的基本结构也很简单。有人可以协助我理解和完成我的计划吗?以下是列出的信息:

以下是整体申请分配:

编写程序以显示某些数字的平均值。您的程序将包含三个用户定义的方法,名为GetNums(),CalcAvg()和DspAvg()。在GetNums()中提示并从键盘读取3个实数。读完数字后,调用CalcAvg()将三个数字作为输入。 CalcAvg()必须RETURN(使用return语句)3个数字的平均值。调用CalcAvg()后,调用DspAvg()显示平均值和输入的三个数字。您的程序不得包含任何具有类范围范围的变量(所有变量必须在方法内声明)。必须从main()调用所有方法调用(GetNums(),CalcAvg()和DspAvg()。使用适当的传球很重要。

您的输出应与以下内容非常相似。

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()
        {

        }


    }
}

5 个答案:

答案 0 :(得分:2)

您无法在一种方法中声明变量,并在另一种方法中使用它们。第二种方法不知道第一种方法中的变量。 正如规范所说,你需要你的GetNums()有3个参数传递出去

static void GetNums(out decimal num1, out decimal num2, out decimal num3)

从这里开始。如果您需要更多帮助,请告诉我:)

答案 1 :(得分:0)

好吧,我们不会为你做功课,但我可以给你一些指示。你的主要应该只调用GetNums()。 GetNums()应该调用CalcAvg()传递从控制台读取的数字而不是DspAvg()函数。最后将返回值从CalcAvg()传递给DspAvg()以将结果显示给控制台。

开始编写一些代码,如果您遇到错误,我们将能够为您提供更多帮助。

答案 2 :(得分:0)

您没有使用分配中描述的参数。下面是一个使用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;
}

这应该让您开始了解如何修改方法。

答案 3 :(得分:0)

我会提供一些建议,但这是一个非常好的入门编程问题。我非常推荐尝试自己解决这个问题,因为它使用了将来会使用的基本编程概念。

  1. 您的变量nu1,nu2,nu3和cavg应为 double 值。 int 不能用于存储小数值。 (注意:要获得2位小数的值,您应该使用Math.Round方法)

    double nu1, nu2, nu3, cavg;
    
  2. 您似乎被困在如何将参数传递给方法。例如,当您在main方法中调用CalcAvg方法时,您应该将从控制台读取的3个值传递给方法。

    static void Main(string[] args){
        CalcAvg(nu1,nu2,nu3);
    }
    
    static void CalcAvg(double nu1, double nu2, double nu3){
    }
    

    通过这样做,您现在可以操作CalcAvg方法中的值。

  3. 最后,将值传递给方法并对其进行操作后,您将需要从方法中返回这些值。这可以使用return语句完成。然后,您可以通过传入参数并将返回的值存储在另一个变量中来调用此方法。

    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;
    }
    
  4. 这三项原则可以帮助您完成此任务。我强烈建议您自己完成此任务,不要复制本网站或任何其他网站的完整答案。正确学习这些原则将有助于您在学术生涯中走得更远。祝你好运:)

答案 4 :(得分:-1)

我在这里做了一些假设。但我已经开始给你一个“工作”的应用程序供你考虑

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));
    }