-2

我正在编写一个程序,将前十个奇数相加,最后得到总和。

到目前为止,这是我的代码。我的代码读取 10 个数字列表中的奇数。即使输入的数字超过 10 个,我也希望我的代码能够读取 10 个奇数。我知道问题是i < 10,这使得程序在第 10 个数字之后停止。

import java.util.Scanner;

公共课问题14 {

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);

    int odd,sum=0;
    System.out.println("enter numbers");

    int i = 0;
            while(i < 10) {
                odd = keyboard.nextInt();
                if (odd % 2 != 0) {
                    sum = sum + odd;
                    i++;
                }
            }
            System.out.println("The sum of first 10 odd numbers is " + sum);

}

}

4

4 回答 4

2

而是将其包装在 while 循环中。

虽然奇数 < 10 要求一个新数字。

int i = 0
while(i < 10) {
    odd = keyboard.nextInt();
    if (odd % 2 != 0) {
        sum = sum + odd;
        i++;
    }
}
System.out.println("The sum of first 10 odd numbers is " + sum);

编辑:完整代码

导入 java.util.Scanner;

/* * 要更改此模板,请选择工具 | 模板 * 并在编辑器中打开模板。*/

/** * * @author stevengreen22 */ public class NewMain {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here 
    Scanner scan = new Scanner(System.in);

    int i = 0; 
    int sum = 0;
    int input;
    int inputCount = 0;

    while (i < 10){
        //Having this inside the while loop prompts the user every time.  
        System.out.println("New number?");
        input = scan.nextInt();
        inputCount++;

        if(input % 2 == 1){
            sum += input;
            i++;
        }
    }

    System.out.println("sum: "+sum);
    System.out.println("Number of odds:" + i);
    System.out.println("Numbe of inputs: " +inputCount);
    System.out.println("Average cos I miss typing sout tab:" + (inputCount/sum));
}

}

于 2013-07-22T00:24:42.597 回答
1

原则是你不知道用户将要输入多少个数字到程序中,所以你想使用while循环而不是for循环。

for当他们知道要迭代多少个元素时,他们会选择一个循环;while当他们不知道需要迭代多少元素时,他们会选择一个循环。

您需要counter在循环之外定义另一个变量,并将其用作循环变量约束。

while(counter < 10) {
    // loop
}

counter每当遇到奇数时,您还需要更新。

于 2013-07-22T00:31:25.160 回答
0

这应该工作

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);

    int odd,sum=0;
    System.out.println("enter numbers");

    int i=0;
    while (i<10){
        odd=keyboard.nextInt();
        if (odd%2!=0){
            sum=sum+odd;
            i++;
        }  
    }
    System.out.println("The sum of first 10 odd numbers is "+sum);
}
于 2013-07-22T00:30:39.170 回答
0

只需将您的 for 循环替换为 while 循环并跟踪整数中奇数的数量:

int oddNumberCount = 0;
int inputNumber;
while(oddNumberCount<10)
{
inputNumber = keyboard.nextInt();
if(inputNumber%2!=0)
{
      sum = sum+inputNumber;
      oddNumberCount++;
}
}
于 2013-07-22T00:31:32.310 回答