3-3 编程练习。请问哪里有问题

3-3 编程练习。请问哪里有问题

public class AverageDemo {
    //求数组元素的平均值
    public class avg(float[] arr){
        float sum=0;
        float getAvg;
        for(float i=0;i<arr.length;i++){
            sum=sum+arr[i];
        }
        getAvg=sum/arr.length;
    }

	public static void main(String[] args) {
		//定义对象
		AverageDemo a=new AverageDemo();
		//创建float类型的数组并初始化
		float[] arr={78.5,98.5,65.5,32.5,75.5};
		//调用方法求平均值并打印输出
		System.out.println("数组的平均值为:"+a.avg(arr));
	}
}

http://img1.sycdn.imooc.com//climg/5c2d8875000142a305390253.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
慕慕4841039 2019-01-10 18:18:04

public class ?是在写方法吗?

好帮手慕阿满 2019-01-04 10:00:54

同学你好,循环变量i应该是整型,所以定义时为int而不是float,另外同学的avg方法没有返回值,所以不能使用System.out.println("数组的平均值为:"+a.avg(arr));调用方法并输出的形式。如果想使用这种方式,avg方法需要返回值,所以定义avg方法为float类型,并在方法的最后返回getAvg;代码修改如下:

http://img1.sycdn.imooc.com//climg/5c2ebd680001b2f505640401.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快!

提问者 痘痘0 2019-01-03 20:33:27
public class AverageDemo {
    //求数组元素的平均值
    public void avg(float[] arr){
        float sum=0;
        float getAvg;
        for(float i=0;i<arr.length;i++){
            sum+=arr[i];
        }
        getAvg=sum/arr.length;
    }

	public static void main(String[] args) {
		//定义对象
		AverageDemo a=new AverageDemo();
		//创建float类型的数组并初始化
		float[] arr={78.5f,98.5f,65.5f,32.5f,75.5f};
		//调用方法求平均值并打印输出
		System.out.println("数组的平均值为:"+a.avg(arr));
	}
}



http://img1.sycdn.imooc.com//climg/5c2e011000017b4807350132.jpg

闻道勤行 2019-01-03 12:53:24
    public void printAve(float[]fl){
        float sum=0;
        for(int i=0;i<fl.length;i++){
            sum+=fl[i];
        }
        sum=sum/fl.length;
        System.out.println("数组的平均值为:"+sum);
    }
	public static void main(String[] args) {
		//定义对象
		AverageDemo ave=new AverageDemo();
		//创建float类型的数组并初始化
		float[]fl={78.5f,98.5f,65.5f,32.5f,75.5f};
		//调用方法求平均值并打印输出
		ave.printAve(fl);
	}

注意你自己第三行的返回值类型,以及定义float数组时,初始化的数据后面要加“f”或者“F

  • 提问者 痘痘0 #1
    public class AverageDemo { //求数组元素的平均值 public void avg(float[] arr){ float sum=0; float getAvg; for(float i=0;i<arr.length;i++){ sum+=arr[i]; } getAvg=sum/arr.length; } public static void main(String[] args) { //定义对象 AverageDemo a=new AverageDemo(); //创建float类型的数组并初始化 float[] arr={78.5f,98.5f,65.5f,32.5f,75.5f}; //调用方法求平均值并打印输出 System.out.println("数组的平均值为:"+a.avg(arr)); } } 改成这样,但还是报错 AverageDemo.java:7: error: incompatible types: possible lossy conversion from float to int sum+=arr[i]; ^ AverageDemo.java:18: error: 'void' type not allowed here System.out.println("数组的平均值为:"+a.avg(arr)); ^ 2 errors
    2019-01-03 20:32:02
  • 提问者 痘痘0 #2
    看2楼,不然看不了代码
    2019-01-03 20:32:43
  • 闻道勤行 回复 提问者 痘痘0 #3
    第七行,for循环体内变量不能定义为float 应该定义为int类型,如for(int i=0;i<arr.length;i++){} 另外将打印输出语句写在方法内,循环体外,并且将你的第18行语句改为:a.avg(arr); 即可。
    2019-01-04 21:24:04
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师