java—只添加5个正数

cld4siwp  于 2021-07-06  发布在  Java
关注(0)|答案(6)|浏览(240)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

上个月关门了。
改进这个问题
所以问题是,当我点击run时,它运行得很好,但是当我把5个正数加起来时,它应该把它们加起来,但是总和总是0。我不知道为什么,如果你把一个负值,只有正值将被添加,将忽略负值。
我在c++上做的,很管用。但我似乎无法让它在java上工作。
例子:
输入:1,1,1,-1,1
输出:4(忽略负值)

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner n = new Scanner(System.in);
        int[] num = new int[5];
        int z;
        System.out.println("Enter only 5 positive numbers");       
         for(z = 0; z < 5; z++)
        {
            num[z] = n.nextInt();
        }
        int sum = 0;
        for(z = 0; z < 5; z++)
        {
            if(num[z] <= 0)
            {
                sum += num[z];
            }
        }
        System.out.println(sum);
    }
}
nimxete2

nimxete21#

更改 if(num[z] <= 0)if(num[z] >= 0) 所以它把所有大于0的数字相加。否则,像所有正数都大于0一样,不会添加正数。

import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
    Scanner n = new Scanner(System.in);

    int range = 5;
    int[] num = new int[range];
    int z;
    System.out.println("Enter only 5 positive numbers");
    for(z = 0; z < range; z++)
     {
        num[z] = n.nextInt();
     }
    int sum = 0;
    for(z = 0; z < range; z++)
     {
        // CHANGED to sum the numbers bigger than 0
        if(num[z] >= 0)
         {
            sum += num[z];
         }
     }
    System.out.println(sum);
}

}

0lvr5msh

0lvr5msh2#

您正在代码中添加负数 if(num[z] <= 0) 这意味着如果条件只在 num[z] 小于或等于 0 . 改变 if(num[z] <= 0) 为了这个 if(num[z] >= 0)

mw3dktmi

mw3dktmi3#

在你的代码里 if(num[z] <= 0) 条件是忽略正数而只添加负数。
相反,这个条件应该更新为 if(num[z] >= 0) 使它按预期工作。

xvw2m8pv

xvw2m8pv4#

问题是你的if条件 if(num[z] >= 0) .

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner n = new Scanner(System.in);
        int[] num = new int[5];
        int z;
        System.out.println("Enter only 5 positive numbers");
        for(z = 0; z < 5; z++)
        {
            num[z] = n.nextInt();
        }
        int sum = 0;
        for(z = 0; z < 5; z++)
        {
            if(num[z] >= 0)
            {

                sum += num[z];
            }
        }
        System.out.println(sum);
    }
}
gkn4icbw

gkn4icbw5#

在代码中,问题在于 if 用于相加的条件。 if(num[z]<=0) 将此条件更改为 if(num[z]>=0 .

sczxawaw

sczxawaw6#

使用 if(num[z] >= 0) 相反 if(num[z] <= 0) 如果你想把正数加起来。你提到的例子应该给你-1和当前逻辑。

相关问题