Java 将for循环中的数组结果保存到变量
我有一个赋值,在一个整数数组中我应该有6个元素,程序应该找到数组中最高和最低的元素,省略这两个元素,然后找到其余四个元素的平均值。到目前为止,我的程序能够找到该数组中的最低和最高数字,并且能够忽略它,但是,我似乎无法将这些结果从循环保存到变量,以便开始计算平均值。代码是Java 将for循环中的数组结果保存到变量,java,arrays,average,Java,Arrays,Average,我有一个赋值,在一个整数数组中我应该有6个元素,程序应该找到数组中最高和最低的元素,省略这两个元素,然后找到其余四个元素的平均值。到目前为止,我的程序能够找到该数组中的最低和最高数字,并且能够忽略它,但是,我似乎无法将这些结果从循环保存到变量,以便开始计算平均值。代码是 int bucky[] = { 4, 6, 8, 19, 199, 400 }; int hello = 0; int max = 0; for (int i = 0; i < bucky.length; i++) {
int bucky[] = { 4, 6, 8, 19, 199, 400 };
int hello = 0;
int max = 0;
for (int i = 0; i < bucky.length; i++) {
if (bucky[i] > max) {
max = bucky[i];
}
}
System.out.println("Max number is " + max);
int min = 0;
int j = 1;
for (int i = 0; i < bucky.length; i++) {
if (bucky[i] < bucky[j]) {
min = bucky[i];
j = i;
}
}
System.out.println("min number is " + min);
System.out.print("{");
for (int i = 0; i < bucky.length; i++) {
if (bucky[i] != max) {
if (bucky[i] != min) {
System.out.print(" " + bucky[i]);
}
}
}
System.out.print("}");
intbucky[]={4,6,8,19,199,400};
int hello=0;
int max=0;
对于(int i=0;i最大值){
max=bucky[i];
}
}
System.out.println(“最大数量为”+Max);
int min=0;
int j=1;
对于(int i=0;i
到目前为止,它打印出了{6 8 19 199}
。我希望能够将它们保存在变量中并计算平均值。任何帮助都将不胜感激。int sum=0;
int sum=0;
for (int i=0 ;i< arr.length;i++) {
if(arr[i]!=max && arr[i]!=min) {
sum=sum+arr[i];
}
}
int average=sum/(arr.length-2)
对于(int i=0;i
你的成功率达到了90%。你只需要朝正确的方向轻推一下
您已经知道如何使用此语句从最高值和最低值筛选结果(重写为压缩嵌套的if
s):
这是最难的部分。您现在需要的:
- 计数器,用于告诉您实际要添加多少值。类似于
。只有当数字不是最小值或最大值时,才能添加到此计数器adjustedTotal
- 一个简单的
变量,适当初始化,从sum
中获取值,以便bucky[i]
bucky[i]!=马克斯和巴基[i]!=最小值
- 这里有一个简单的程序,可以实现您的目标
如果所有元素都具有相同的值,会发生什么情况
int[] input = {0,1,2,3,4,5};
int max = input[0];
int min = input[0];
int sum = 0;
for(int i : input){
sum += i;
if(i < min){
min = i;
}else if(i > max){
max = i;
}
}
System.out.println("sum for input is : " + sum);
System.out.println("highest value element is : " + max);
System.out.println("lowest value element is : " + min);
System.out.println("sum excluding extreme elements is : " + (sum - min -max));
// have cast the result as a float as i dont know if average should be truncated or not
System.out.println("average excluding extreme elements is : " + ((float)(sum - min -max)/(input.length-2)));
int[]输入={0,1,2,3,4,5};
int max=输入[0];
int min=输入[0];
整数和=0;
for(int i:输入){
总和+=i;
如果(imax){
max=i;
}
}
System.out.println(“输入的总和为:“+sum”);
System.out.println(“最大值元素为:“+max”);
System.out.println(“最小值元素为:“+min”);
System.out.println(“不包括极端元素的总和为:”+(总和-最小-最大));
//将结果转换为浮点,因为我不知道是否应该截断平均值
System.out.println(“排除极端元素的平均值为:+((浮点)(总和-最小值-最大值)/(输入.长度-2));
您可以定义一个名为sum的变量,就像上面提到的Makoto一样
另外,我想指出,计算min的代码有问题
举个例子,
假设int[]数组如下所示:
int bucky[] = { 6, 4, 8, 19, 400,199 };
使用下面的代码:
int min = 0;
int j = 1;
for (int i = 0; i < bucky.length; i++) {
if (bucky[i] < bucky[j]) {
min = bucky[i];
j = i;
}
}
System.out.println("min number is " + min);
做些改变,继续前进。:) publicstaticvoidmain(字符串参数[]){
int-bucky[]=新int[]{4,6,8,19,199,400};
int max=bucky[0];
int min=bucky[0];
整数和=0;
对于(int i=0;i bucky[i]){
min=bucky[i];
}
否则,如果(最大值
可以使用Java中的数组开发如下小程序,它最初将数组的第一个元素存储在min
、max
和sum
中,然后从第一个元素开始遍历数组,并通过与数组的input[i]
指向的当前元素进行比较,确定min
和max
值元素。另外,每次向sum
变量添加input[i]
,以获得所有元素的总和。在计算了min
、max
和sum
值元素之后;通过从sum
中减去min
和max
计算avg
,并将结果值除以length-2
class ComputeAvg
{
public static void main (String[] a)
{
int[] input = {10,11,12,13,14,15};
int min, max, sum, avg;
min = max = sum = input[0];
int length = input.length;
for (int i = 1; i < length; i++)
{
if (min > input[i])
min = input[i];
else if (max < input[i])
max = input[i];
sum += input[i];
}
avg = (sum - min - max)/(length - 2);
System.out.println("sum for input is : " + sum);
System.out.println("highest value element is : " + max);
System.out.println("lowest value element is : " + min);
System.out.println("sum excluding min and max value elements is : " + (sum - min - max));
System.out.println("Average after excluding min and max value elements is : " + avg);
}
}
OUTPUT
======
sum for input is : 75
highest value element is : 15
lowest value element is : 10
sum excluding min and max value elements is : 50
Average after excluding min and max value elements is : 12
class ComputeAvg
{
公共静态void main(字符串[]a)
{
int[]输入={10,11,12,13,14,15};
整数最小值、最大值、总和、平均值;
最小值=最大值=总和=输入[0];
int length=input.length;
for(int i=1;i输入[i])
min=输入[i];
否则如果(最大值<输入[i])
最大值=输入[i];
总和+=输入[i];
}
平均值=(总和-最小值-最大值)/(长度-2);
System.out.println(“输入的总和为:“+sum”);
System.out.println(“最大值元素为:“+max”);
System.out.println(“最小值元素为:“+min”);
System.out.println(“不包括最小值和最大值元素的总和为:”+(sum-min-max));
System.out.println(“排除最小值和最大值元素后的平均值为:“+avg”);
}
}
输出
======
输入的总和为:75
最高值元素为:15
最低值元素为:10
不包括最小值和最大值元素的总和为:50
排除最小值和最大值元素后的平均值为:12
不能对数组求和(在查找最小值/最大值时),从和中减去最小值/最大值,然后从中计算平均值吗?问题是,如果数组中有两倍于最小值或两倍于最大值(如{1,1,4,6,7,9,9}问题是,如果数组中的最小值是最大值的两倍或两倍(如{1,1,4,6,7,9,9}),那么将同时删除它们(
int min = 0;
int j = 1;
for (int i = 0; i < bucky.length; i++) {
if (bucky[i] < bucky[j]) {
min = bucky[i];
j = i;
}
}
System.out.println("min number is " + min);
int min = bucky[0];
//int j = 1;
for (int i = 1; i < bucky.length; i++) {
if (bucky[i] < min) {
min = bucky[i];
}
}
System.out.println("min number is " + min);
public static void main(String args []){
int bucky [] = new int [] {4, 6, 8, 19, 199, 400};
int max = bucky[0];
int min = bucky[0];
int sum = 0;
for(int i = 0; i<bucky.length; i++){
if(min > bucky[i]){
min = bucky[i];
}
else if(max < bucky[i]){
max = bucky[i];
}
sum += bucky[i];
}
sum -= (min + max);
System.out.println("Max is " + max);
System.out.println("Min is " + min);
System.out.println("Sum is " + sum);
System.out.println("Average is " + sum/(bucky.length-2));
}
class ComputeAvg
{
public static void main (String[] a)
{
int[] input = {10,11,12,13,14,15};
int min, max, sum, avg;
min = max = sum = input[0];
int length = input.length;
for (int i = 1; i < length; i++)
{
if (min > input[i])
min = input[i];
else if (max < input[i])
max = input[i];
sum += input[i];
}
avg = (sum - min - max)/(length - 2);
System.out.println("sum for input is : " + sum);
System.out.println("highest value element is : " + max);
System.out.println("lowest value element is : " + min);
System.out.println("sum excluding min and max value elements is : " + (sum - min - max));
System.out.println("Average after excluding min and max value elements is : " + avg);
}
}
OUTPUT
======
sum for input is : 75
highest value element is : 15
lowest value element is : 10
sum excluding min and max value elements is : 50
Average after excluding min and max value elements is : 12