注册 登录
编程论坛 C# 论坛

求助一题C#作业

the_second 发布于 2016-03-30 19:37, 3440 次点击
4.    参数修饰符的用法:
设计一个工具类,包含四个函数:
函数一:输入3个参数值,返回其算术平均值
函数二:输入3个参数值,使用ref参数,输出几何平均值、均方根平均值、调和平均值。
函数三,输入3个参数值,使用out参数,同样输出几何平均值、均方根平均值、调和平均值。
函数四,输入n个参数,自行决定参数格式,要求输出几何平均值、均方根平均值、调和平均值。
在主函数中进行测试。
调和平均值计算方法: (即数值倒数的平均数的倒数)
程序框架为:
    class MeanTool
    {
        public static double Mean1(double a, double b, double c)
        {
            return …;
        }
        ……
    }

    class Program
    {
        public static void Main()
        {
            double value1 = 2.0, ……;
            Console.WriteLine("函数1:{0}", MeanTool.Mean1(value1, ……));
            double result1 = 0.0;
            ……
        }
}
4 回复
#2
qq10235692232016-03-30 21:12
这个是最基本的东西,考察对ref,out,paramas关键字的理解,看看教材就明白了。对于几何平均值、均方根平均值、调和平均值,我表示并不知道是什么。
#3
qq10235692232016-03-30 22:17
你参照下面的做,有基本的思想。
程序代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            double a = 1, b = 2, c = 3;

            Console.WriteLine("Mean1:{0}", MeanTool.Mean1(a, b, c));

            double x1 = 0, y1 = 0, z1 = 0;  //ref参数在使用前必须先赋值
            MeanTool.Mean2(a, b, c,ref x1,ref y1,ref z1);
            Console.WriteLine("Mean2:{0} {1} {2}", x1, y1, z1);

            double x2, y2, z2;  //out参数在使用前不必赋值
            MeanTool.Mean3(a, b, c, out x2, out y2, out z2);
            Console.WriteLine("Mean3:{0} {1} {2}", x2, y2, z2);

            double x3=0, y3=0, z3=0;
            MeanTool.Mean4(ref x3, ref y3, ref z3, 100, 200, 300, 400, 500);  //参数不定
            Console.WriteLine("Mean4:{0} {1} {2}", x3, y3, z3);

            Console.ReadKey();
        }
    }

    class MeanTool
    {
        public static double Mean1(double a, double b, double c)  //静态方法可以用类直接调用
        {
            return (a + b + c)/3;
        }

        public static void Mean2(double a, double b, double c,ref double x,ref double y,ref double z)
        {
            x = a;
            y = b;
            z = c;
        }

        public static void Mean3(double a, double b, double c, out double x, out double y, out double z)
        {
            x = a+1;
            y = b+1;
            z = c+1;
        }

        public static void Mean4(ref double x, ref double y, ref double z,params int[] a)  //params,用于参数个数不确定,必须是方法的最后一个参数
        {
            x = a[0];
            y = a[1];
            z = a[2];
        }
    }
}


[此贴子已经被作者于2016-3-30 22:35编辑过]

#4
the_second2016-03-31 10:16
多谢大神
#5
yzh000012016-04-04 09:20
慢慢学习,编程很深奥啊
1