慕瓜6419123
2018-06-25 18:30
package com.doit; public class It { public static void main(String[] args) { // 定义一个整型数组,并赋初值 int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 }; int max = nums[0]; // 假定最大值为数组中的第一个元素 int min = nums[0]; // 假定最小值为数组中的第一个元素 double sum = 0;// 累加值 double avg = 0;// 平均值 for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素 // 如果当前值大于max,则替换max的值 do{max=nums[i];}while(nums[i]>max); // 如果当前值小于min,则替换min的值 do{min=nums[i];}while(nums[i]<min); // 累加求和 sum=sum+nums[i]; } // 求平均值 avg=sum/nums.length; System.out.println("数组中的最大值:" + max); System.out.println("数组中的最小值:" + min); System.out.println("数组中的平均值:" + avg); } }
为啥我的最大值和最小值输出的结果都是20呀?循环哪里出问题了呀?求大神救助
其实你如果一定要用while也不是不可以,可是你却偏偏用了do-while,在循环开始前都会先执行一次,所以你的最大值跟最小值才会都等于数组的最后一个。
do
{max=nums[i];}
while
(nums[i]>max);
do
{min=nums[i];}
while
(nums[i]<min);
这里写if。写循环干嘛。。
分别写成:
if (max < nums[i]) max = nums[i];
if (min > nums[i]) min = nums[i];
Java入门第一季(IDEA工具)升级版
1167131 学习 · 17892 问题
相似问题
回答 2
回答 2
回答 3
回答 2
回答 1