什么是无效的是总和部分。它不等于正确的数字。例如:用户输入25,所以总和应为75,但程序打印出50。
我的代码:
import java.util.Scanner;
public class SumH4
{
public static void main(String[] args)
{
//define data
int x;
int sum;
//scanner is needed
Scanner sc = new Scanner(System.in);
//get user data and initialize variables
System.out.println("Please input a positive whole number.");
x = sc.nextInt();
sc.nextLine();
sc.close();
System.out.println();
sum = 0;
//do computation
for(int a = 0; a < x; a = a + 1)
{
if(a%5==0)
{
sum = sum + a;
}
}
//print results
System.out.println("Sum = " + sum);
}
}
答案 0 :(得分:4)
您不包括用户输入的号码本身。只需将for
循环更改为以下内容,即添加输入x
:
for (int a = 0; a <= x; a = a + 1) {
答案 1 :(得分:3)
更改
for(int a = 0; a < x; a = a + 1)
到
for(int a = 0; a <= x; a = a + 1)
目前你不包括25,那只能达到24,即a < x
表示&#34;而a小于x&#34;,那么你想要&#34;而a小于等于x&#34;。
答案 2 :(得分:3)
您的循环测试应为<=
(不是<
),我建议您在需要时定义变量。最后,您不应close()
Scanner
System.in
System.in
因为关闭Scanner sc = new Scanner(System.in);
System.out.println("Please input a positive whole number.");
int x = sc.nextInt();
int sum = 0;
for (int a = 0; a <= x; a++) {
if (a % 5 == 0) {
sum += a;
}
}
// print results
System.out.println("Sum = " + sum);
,如果您重构代码,可能会给您带来很多痛苦。所以,我会改变你的方法,如
{{1}}