为了账号安全,请及时绑定邮箱和手机立即绑定

自己改成键盘输入数组,其他都正常,就是min无论怎样都输出0,大神能否解答一下谢谢

/**

 * 

 */

package en.hh;

import java.util.Scanner;

/**

 * @author 88888888笔

 *要求:

 *1、 定义一个整型数组,并赋初值 61, 23, 4, 74, 13, 148, 20

 *2、 定义变量分别保存最大值、最小值、累加值和平均值,并假设数

 *   组中的第一个元素既为最大值又为最小值

 *3、 使用 for 循环遍历数组中的元素,分别与假定的最大值和最小值

 *   比较。如果比假定的最大值要大,则替换当前的最大值;如果比假

 *   定的最小值要小,则替换当前的最小值

 *4、 循环执行过程中对数组中的元素进行累加求和

 *5、 循环结束根据累加值计算平均值,并打印输出相关内容

 *777、改进:数组数据由键盘输入

 */

public class mooc3 {

public static void main(String[] args) {

//int[] nums= {61,23,4,74,13,148,20};

Scanner input=new Scanner(System.in);//创建Scanner对象

int[] nums=new int[7]; //声明7位数组

int max=nums[0];       //初始最大值位第一位数据

int min=nums[0];       //初始最小值为第一位数据

int sum=0;             //初始总和为0

double avg=0;          //初始平均值为0

System.out.println("请输入七个数据:");

for(int j=0;j<7;j++){  

nums[j]=input.nextInt(); //输入数组数据

}

for(int i=0;i<nums.length;i++) {

sum=sum+nums[i];//求和

if(nums[i]<min) //替换最小值

   min=nums[i];

if(nums[i]>max) //替换最大值

max=nums[i];

}

avg=sum/nums.length; //求平均值

System.out.println("最大值:"+max+'\n'+"最小值:"+min+'\n'+"平均值:"+avg);

}


}

最大值,平均数都能正确显示,但是最小值一直都输出是0

正在回答

1 回答

ok 我知道了 

我把int max=nums[0];       //初始最大值位第一位数据

int min=nums[0];       //初始最小值为第一位数据    这俩放前面去了,而这时还没有输入数据,所以max和min找不到指定的数据,所以 应该时系统给他们分配了默认的0,max呢因为别的数都比它大所以输出正确,而没有正数比0小,所以min输出的时默认的0


1 回复 有任何疑惑可以回复我~
#1

8笔 提问者

自问自答 这也是没谁了
2018-03-23 回复 有任何疑惑可以回复我~
#2

stephen_hj

你说的我还是不懂,请问代码怎么改。求指导,谢谢。
2018-03-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

自己改成键盘输入数组,其他都正常,就是min无论怎样都输出0,大神能否解答一下谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信