Java 如何在此程序中打印最大金额? 包消息; 公共类示例{ 公共静态void main(字符串参数[]) int n=1; int输入[]={1,2,1,3,4}; 对于(int j=0;j

Java 如何在此程序中打印最大金额? 包消息; 公共类示例{ 公共静态void main(字符串参数[]) int n=1; int输入[]={1,2,1,3,4}; 对于(int j=0;j,java,Java,提示:使用一个包含“到目前为止达到的最大和”的变量。您将在计算新和时更新它 您需要找到“如何以及何时初始化此变量?”和“如何更新它?”您需要一个临时变量来保存当前的最大值 package Message; public class Example_R { public static void main (String args[]) int n=1; int input[]={1, 2, 1, 3, 4}; for (int j=0; j<

提示:使用一个包含“到目前为止达到的最大和”的变量。您将在计算新和时更新它


您需要找到“如何以及何时初始化此变量?”和“如何更新它?”

您需要一个临时变量来保存当前的最大值

package Message; 
public class Example_R { 
public static void main (String args[])  
    int n=1;
    int input[]={1, 2, 1, 3, 4};         
    for (int j=0; j<=4; j++) {
        int Add = 0;
        for (int i=0; i<=4; i++)    {
           if (input[j] !=input[i]) {
        Add+=input[i];
           }
        }
                System.out.println(Add);
            }
         }
 }

您可以使用类型为
compariable
的变量,并使用
comparieto()
方法

  • one。如果
    one>two,则compareTo(two)
    将返回>0
  • one。如果
    one
    将返回<0
  • one。如果
    one
    two
    相等,则compareTo(two)
    将返回0

  • 遍历数组,将当前索引与前面的索引进行比较,并更新保存当前最大值的变量。

    您可能需要创建一个单独的方法,将“输入[]”数组传递到左边(作为练习)。然而,在考虑这样的问题时,首先考虑一下用英语怎么做。写下这个策略(“算法”),然后用Java实现

    int temp = intArray[0]
    for(int i : intArray)
    {
    if(i > temp)
    temp = i;
    }
    
    公共类示例\R{
    公共静态void main(字符串参数[]){
    int输入[]={1,2,1,3,4};
    int largestSum=0;
    int currentSum;
    对于(int j=0;j
    试试这个:

    public class Example_R {
    public static void main(String args[]) {
        int input[] = { 1, 2, 1, 3, 4 };
        int largestSum = 0;
        int currentSum;
    
        for (int j = 0; j < input.length; j++) {
            currentSum = 0;
            for (int i = 0; i < input.length; i++) {
                if (input[j] != input[i]) {
                    currentSum += input[i];
                }
            }
            System.out.println("Sum of all values not equal to " + input[j]
                    + " is: " + currentSum);
            if (j == 0) {
                largestSum = currentSum;
            } else {
                if (largestSum < currentSum) {
                    largestSum = currentSum;
                }
            }
        }
        System.out.println("The largest overall sum was " + largestSum);
    }
    }
    
    int n=1,sum=0;
    int[]输入={1,2,1,3,4};
    
    对于(int j=0;j请正确解释问题..不明白我从我的项目经理那里看到了更清晰的规范…读一下:你说你不能使用数组。
    input[]
    是一个数组。对不起,附加数组你在说什么?“intArray”是他用来对所有值的和进行排序的数组“数组中的其他元素"这不等于元素。在他的情况下,它被称为输入。他的程序看起来不错,但它不会给输出9任何帮助。在这种情况下,最大的总数是9。我假设你更正了我的原始帖子,以确保循环具有正确的限制,然后打印出最终结果。我做了上述更正。你是否转换了程序进入一个单独的方法以返回最大的总和?您能在回答的同时添加一些附加信息吗?每次完成第二个循环后,如果“总和”小于当前的“相加”值,则会更新。我添加了您的注释以进行解释,并格式化了您的代码:)没有解决学生遇到的主要问题。。如何跟踪“最大”和?遍历数组,将当前索引与以前的索引进行比较,并更新包含当前最大值的变量。“-这就是跟踪最大和的方式。请在投票前阅读。
    int n = 1,sum=0;
    int[] input = { 1, 2, 1, 3, 4 };
    for (int j = 0; j <= 4; j++){
         int Add = 0;
         for (int i = 0; i <= 4; i++){
              if (input[j] != input[i])
                  Add += input[i];    
         }
         if (sum < Add)
             sum = Add;
    }