请求老师为我指点

请求老师为我指点

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

老师,这代码我也不知道怎么写好,存在一些需要您帮指点的地方:

1、需要存入的输入数据个数功能不会实现;

2、求平均数的for(i=0;i<length;i++)循环里也存在一些问题,整个平均值方法感觉不是我想要的效果。

等等,看如何修改,请老师指导!

                                                    

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

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

4回答
好帮手慕阿满 2019-07-01 17:05:16

同学你好,不显示最后一个0有两种方法,第一种,因为只输入了9个数组,知道最后一位是0,所以可以在输出时,只输出前9个数,for(int i=0;i<f.length-1;i++)即可。

第二种,在输出时,对数据进行判断,如果数据为0,则调用continue结束本次循环,继续下次循环,也就是0不输出。

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

好帮手慕阿满 2019-07-01 15:03:50

同学你好,如图:

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

同学定义了数组长度为10,但是在initScore()方法的for循环中,循环条件是i<f.length-1,即i<10-1=9。同学循环输入了0到8共9个数据,当i++等于9时不满足i<9的条件,所以退出循环,只能输入9个数据。另外在主方法中,接收initScore()方法的返回值,数组长度为10,只输入9个数据,所以最后一位默认为0,循环输出时,输出的是数组中所有的数据,所以最后的0也输出。

如果同学想输入10个数字,initScore()方法的循环条件应该i<f.length或者i<=f.length-1

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

  • 提问者 无限精彩 #1
    如何不显示最后一个默认的0
    2019-07-01 15:19:36
好帮手慕阿满 2019-07-01 10:41:27

同学你好,i从0开始,i小于数组f的长度10,也就是说,这里是0到9是10个数,计算的是10个数的和,除以10,得平均值。

祝:学习愉快~

  • 提问者 无限精彩 #1
    for(i=0;i<length;i++)这个循环,我只输入了1,2,3,4,5,6,7,8,9,以上九个数字,输入最后一个数字“9”之后回车,结果显示是:1,2,3,4,5,6,7,8,9,0,怎么会显示10个数字,最后的0哪来的?怎么会输完9个数字就出结果了,第十个数字都还没有输入。
    2019-07-01 10:53:01
好帮手慕阿满 2019-06-30 11:36:14

同学你好,关于同学的问题:

1、在initScore()方法中,输出提示:请输入要存入的数据个数,然后使用Scanner对象接收从键盘输入的值,如果输入的非数值,使用try-catch处理一下。在for循环中,i小于从键盘接收的数据。

2、在求平均值时,for循环中,i应该小于数据f的长度f.length即可。在求平均时,应该是ave = a /f.length。

另外建议同学代码有问题,请将代码贴上来,不要截图,方便老师具体测试。

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

  • 提问者 无限精彩 #1
    老师,ave = a /f.length,f.length的长度为10,9个数据的总数除以10,得平均数?
    2019-06-30 23:09:33
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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