使用while循环对两个整数范围内的均值和赔率进行排序?

时间:2015-03-14 20:05:33

标签: java integer sum

注意:(我不需要任何人为我编写整个程序,我只需要算法!)

我需要创建一个程序,提示用户输入两个整数。然后程序需要列出两个输入整数之间的所有偶数并输出总和。然后是奇数的相同。 (使用While循环)

然后我需要重写代码以使用do-while循环,然后使用for循环重写它。

以下是结果应如下所示的示例:

Enter an integer: 3
Enter another integer larger than the first: 10

Even Numbers: 4, 6, 8, 10
Sum of even numbers = 28

Odd Numbers: 3, 5, 7, 9
Sum of odd numbers = 24}

我尝试使用类似这样的偶数开始,但它只是卡在第一个数字上,即使第一个数字是偶数。

import java.util.Scanner;

public class EvenOddSum_While {

public static void main(String[] args){

    Scanner keyboard = new Scanner(System.in);

    System.out.println("Please enter a number: ");
    int num1 = keyboard.nextInt();
    System.out.println("And another: ");
    int num2 = keyboard.nextInt();


    while (num1 < num2){
        while (num1 %2 == 0){
            System.out.print(num1 + ", ");
            num1++;
            }                   
        }   
    }   
}

2 个答案:

答案 0 :(得分:0)

内在的时候没有结束标准,你需要的话。此外,您的num1 ++语句必须位于外部while循环中,而不是内部循环。

此外,这里没有真正的算法,你正在与语言本身挣扎;)

一般建议:使用逐步调试器运行代码,几乎每个IDE都有一个OR在代码中放置过多的log /System.out.println语句,以了解它在做什么

答案 1 :(得分:0)

当你说“介于两者之间”时,你的意思是包含两个整数吗?因为你确实包含了它们。好的。这样做。

int x = 0;
int y = 0;
int even = 0;
int odd = 0;
int evenx = 0;
int oddx = 0;
int evena = 0;
int odda = 0;

Scanner scan = new Scanner(System.in);
//Prompts the user to input the first number
x = scan.nextInt();
//Prompts the user to input the second number
y = scan.nextInt();

for(int i = x;i<y;i++,x++;){
if(x%2 = 0){
even = even + x;
evenx++;
}
if(x%2 = 1){
odd = odd + x;
oddx++;
}

}

evena = even/evenx;
odda = odd/oddx;

//print it out. There. The algorithm. 

神。这个网站有自动格式吗?