跪求!Java编写方法,求整数平均值,平均值类型要求

2021-01-14 06:53:20 字数 3581 阅读 5475

1楼:匿名用户

public class test

public double average(int a,int b,int c)}

2楼:匿名用户

public static double avg(int a,int b,int c)

public static void main(string args)

3楼:匿名用户

public static double average(int a,int b,int c)

c++中成员函数重载是什么意思?

4楼:du瓶邪

重载函数

重载,英文为overloading,大概就是很多个的意思。

举个例子,比如,我需要个函数。

取2个int的最大值。很容易,函数接口应该是(1) int max(int a, int b);

那更进一步,我取3个 int 的最大值呢,接口可以定义为(2) int max(int a, int b, int c);

对比 函数(1), (2), 的名字,是一样的,都叫 max,就只有参数的个数不同。这是函数重载。

那现在,我需要取两个float的最大值呢,接口也可以定义为(3) float max(float a, float b);

对比 函数(1),(3), 名字也是一样的,叫max。参数个数也是一样的。不过参数的类型不同。这也是函数重载。

5楼:

函数的重载,主要是说,当你传进对应的参数的时候,调用的对应的函数。也就是楼上所说的多态。比如一个篮子可以装苹果8个或者装梨子4个。

当你告诉篮子说我要装苹果,它就给你返回一个说我能装8个。你又告诉篮子说我要装梨子,它就给你返回一个4个。就是这个意思。

6楼:歪歪

函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数。重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。

1.2、为什么需要函数重载(why)?试想如果没有函数重载机制,如在c中,你必须要这样去做:

为这个print函数取不同的名字,如print_int、print_string。这里还只是两个的情况,如果是很多个的话,就需要为实现同一个功能的函数取很多个名字,如加入打印long型、char*、各种类型的数组等等。这样做很不友好!

类的构造函数跟类名相同,也就是说:构造函数都同名。如果没有函数重载机制,要想实例化不同的对象,那是相当的麻烦!

操作符重载,本质上就是函数重载,它大大丰富了已有操作符的含义,方便使用,如+可用于连接字符串等!

我们在开瓶瓶罐罐的时候,经常会遭遇因各种瓶口规格不同而找不到合适的工具的尴尬。所以有时候就为了开个瓶,家里要备多种规格的开瓶器。同样是开个瓶子嘛,何必这么麻烦?

于是有人发明了多功能开瓶器,不管啤酒瓶汽水瓶还是软木塞的红酒瓶都能轻松打开。

然而开瓶器的问题也会发生到程序设计中。比如我们要编写一个函数来求一个数的绝对值,然而整数、浮点型数、双精度型数都有绝对值,但为它们编写的函数返回值类型却是各不相同的。比如:

intiabs(inta);

floatfabs(floata);

doubledabs(doublea);

这样是不是有点备了多种开瓶器的感觉?我们能不能在程序设计中也做一个多功能的开瓶器,把所有数据类型的求绝对值都交给abs这一个函数呢?

在c++中,我们也能够把具有相同功能的函数整合到一个函数上,而不必去写好多个函数名不同的函数,这叫做函数的重(音chóng)载(overload)。重载的本质是多个函数共用同一个函数名。

我们先来看一个函数重载的实例:(程序6.3)

#include"iostream.h"

intabs(inta);//当参数为整型数据时的函数原型

floatabs(floata);//当参数为浮点型数据时的函数原型

doubleabs(doublea);//当参数为双精度型数据时的函数原型

intmain()

intabs(inta)//函数定义

floatabs(floata)

doubleabs(doublea)

运行结果:

intabs

intabs

a=5b=3

floatabs

floatabs

c=2.4

d=8.4

doubleabs

doubleabs

e=3e-009

f=3e+006

运行结果表明,abs函数果然能够处理三种不同数据类型的数据了。那么我们怎样才能自己造一个“多功能工具”呢?

其实要编写一个重载函数并不是很麻烦。首先,我们要告诉电脑,同一个函数名存在了多种定义,所以,我们要给同一个函数名写上多种函数原型(如程序6.3的第二到第四行);其次,我们要对应这些函数原型,分别写上这些函数的定义(如程序6.

3的主函数体之后,对三个abs函数的定义)。

然而电脑又是如何来识别这些使用在不同环境下的“工具”的呢?

在日常生活中使用到多功能工具,如果我们不知道具体应该使用哪个工具,我们会把每个工具放上去试一试,如果只有唯一一个工具适合,那么我们就毫无疑问地能够确定就是使用它了。但是如果出现了两个或者两个以上工具都能适合,我们就分不清到底应该使用哪个是正确的了。

电脑的做法和我们是类似的。电脑是依靠函数声明时参数表中参数个数、各参数的数据类型和顺序来判断到底要运行哪个函数的。因此,当重载函数参数表完全相同的时候,电脑便无法判断应该运行哪个函数,于是程序就出错了。

我们了解了电脑是如何识别重载函数以后,发现要编写一个重载函数还是需要注意一些地方的,那就是:在重载函数中,任意两个函数的参数表中的参数个数、各参数的数据类型和顺序不能完全一样。例如intfunc(inta,charb)和floatfunc(intc,chard)就不能重载,因为它们的参数个数、各参数的类型和顺序完全一样,即使形参名不同、返回值类型不同也是无济于事的。

在调用一个重载函数时,可能会发生找不到一个完全合适的函数。这时候,就需要进行数据类型的转换。由于这种方法可能导致数据丢失或数据类型不严格符合,且在充分考虑问题后,这种情况是可以尽量避免的,所以这里不再就这个问题论述。

有兴趣的读者可以查阅其他c++的参考资料。

从某种意义上说,重载函数是方便了函数的使用者。在前一节我们知道,如果完成了所有函数的编写,那么完成一个程序就像搭积木一样简单了。然而如果功能相似名字却不同的函数太多,那么多“积木”搭起来也未必简单。

当函数的编写者充分考虑了不同情况下应该运行稍有不同的函数,函数的使用者就不必为这些小细节而烦恼了。不过重载函数的函数名还是应该符合其功能,如果把功能完全不同的函数重载,那么就大大影响了程序的可读性。

7楼:匿名用户

这是函数的重载,能够实现多态。根据参数的类型分别调用不同的函数

8楼:朱同路口

函数的重载,函数名字虽相同,但是功能缺失不同。可以根据需要传进去的参数做到函数功能不同。

9楼:匿名用户

应该一个是构造函数,一个是成员函数

跪求,用简便方法算平均数,汇编语言计算平均数 急求。。跪求各位高人指点。。

1楼 天高飞 再一堆数中找到众数或接近平均的数,然后各数和此众数相减,将差值累加起来,在除以个数,得到的结果再加上此众数,就是平均数了。 2楼 匿名用户 这是我个人的方法,希望对你有用。算一列数的平均数,所有大的依次减去最小的数,然后把结果加起来,再除以这列数的个数,然后在加上最小的。就是平均数。 ...

输入整数,求它们的和以及平均值用c语言编写

1楼 匿名用户 include int main printf 和为 d 平均值为 2f sum sum 5 0 return 0 用c语言编写一个程序 输入5个数 求其和及平均数 2楼 匿名用户 include int main printf 和为 d 平均值为 2f sum sum 5 0 re...

java编程题定义整型数组类要求包含构造方

1楼 匿名用户 import java util class yugi public void out class sortyugi extends class reverseyugi extends 用java定义一个整型数组类,要求包含构造方法,增加数据及输出数据成员方法,并利用数组实现动态内存...