数组和For循环的Java应用
问题是: 编写一个程序,将十个整数读入一个数组,然后 计算值数组的总和,最大值除外。 (提示:求和和和的最大值之间的差。) 阵列)数组和For循环的Java应用,java,arrays,for-loop,java.util.scanner,Java,Arrays,For Loop,Java.util.scanner,问题是: 编写一个程序,将十个整数读入一个数组,然后 计算值数组的总和,最大值除外。 (提示:求和和和的最大值之间的差。) 阵列) 这是您必须实现的给定示例: 下面的程序是我个人的尝试: 这个程序到底出了什么问题?有人能帮我找到它并教我如何解决它吗?谢谢:)第一个和=0-max;是错误的,因为max还不知道。你需要在找到最大值后再做 for (int i = 0; i < x.length; i++) { sum = sum + x[i]; } sum -= max; f
这是您必须实现的给定示例:
下面的程序是我个人的尝试:
这个程序到底出了什么问题?有人能帮我找到它并教我如何解决它吗?谢谢:)第一个和=0-max;是错误的,因为max还不知道。你需要在找到最大值后再做
for (int i = 0; i < x.length; i++) {
sum = sum + x[i];
}
sum -= max;
for(int i=0;i
您在不知不觉中减去了最大值。移动int sum=0-max代码>在寻找它的循环之后。代码的问题是您正在对x[0]
值进行子分级(在初始值时假定最大值)
甚至你也可以通过单for循环实现
int max = x[0];
int sum = 0;
for (int i = 0; i < x.length; i++) {
if(x[i] > max) {
max = x[i];
}
sum = sum + x[i];
}
sum -=max;
int max=x[0];
整数和=0;
对于(int i=0;imax){
max=x[i];
}
总和=总和+x[i];
}
总和-=最大值;
移动此行:
int sum = -max;
在查找最大值的循环之后导入java.util.Scanner;
import java.util.Scanner;
public class SumWithoutMax {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.print("Please input 10 integers: ");
int [] x = new int [10];
for (int i = 0; i < x.length; i++) {
x[i] = in.nextInt();
}
int max = x[0];
int sum = 0;
for (int i = 0; i < x.length; i++) {
if(x[i] > max) {
max = x[i];
}
}
for (int i = 0; i < x.length; i++) {
sum = sum + x[i];
}
sum = sum - max;
System.out.println("Sum without the max: " +sum);
}
}
公共级SumWithoutMax{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
系统输出打印(“请输入10个整数:”);
int[]x=新的int[10];
对于(int i=0;imax){
max=x[i];
}
}
对于(int i=0;i
当循环找到最大值时。在JAVA 8中可能的答案是:
Integer sum = Arrays.asList(3,4,1,9,2,10,8,6,7,5).stream().sorted(Comparator.reverseOrder()).skip(1).reduce(
0,(a, b) -> a + b);
顺便说一下,为了可读性,它应该是sum=-max代码>(更糟的方式)或总和-=最大值代码>最后(更好的一个)各位,首先感谢你们对我的问题给出了详细而精彩的回答。但是请不要对这篇文章投“否决票”,因为我和Java的接触才一个多星期,所以我想我问这些毫无意义的问题是合理的。谢谢你的理解。
int sum = -max;
import java.util.Scanner;
public class SumWithoutMax {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.print("Please input 10 integers: ");
int [] x = new int [10];
for (int i = 0; i < x.length; i++) {
x[i] = in.nextInt();
}
int max = x[0];
int sum = 0;
for (int i = 0; i < x.length; i++) {
if(x[i] > max) {
max = x[i];
}
}
for (int i = 0; i < x.length; i++) {
sum = sum + x[i];
}
sum = sum - max;
System.out.println("Sum without the max: " +sum);
}
}
int sum = -max;
Integer sum = Arrays.asList(3,4,1,9,2,10,8,6,7,5).stream().sorted(Comparator.reverseOrder()).skip(1).reduce(
0,(a, b) -> a + b);