2016-09-27 122 views
0

所以我必须在我的课上在eclipse中创建一个java项目。作业是创建一个程序,允许用户输入整数直到输入某个整数(42)。在输入整数(42)之后,程序将随后。平均所有输入的数字。 。显示输入的最小和最大数字。 。输入的总数。这些都必须计算而不计(42)。这是我迄今为止。我可以从用户那里获得输入,一旦他们输入42,程序停止并显示总数,但是包含42。而且我不知道如何在输入中添加“计数”,因此我可以使用计数来显示输入的总数以及将总数除以给我的平均值。我感谢任何帮助。连续循环,直到条件得到满足

package assignment6; 

import java.util.Scanner; 

public class assignment6 { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     //Scanner 
     Scanner input = new Scanner(System.in); 

     //Enter integer 
     System.out.println("Enter a integer "); 
     int data = input.nextInt(); 

     //Accept integers until 42 is entered 
     int sum = 42; 
     while (data != 42) { 
      sum += data; 

      System.out.println("Enter another integer "); 
      data = input.nextInt(); 
     } 
     //Display sum of numbers entered 
     System.out.println("The sum of all numbers entered is: " + sum); 

     //Display Average of numbers entered 
     System.out.println("Average of all numbers entered is:" + (sum/)); 

    } 
} 
+1

问题在哪里? – CodeChimp

回答

1

检查下面的代码。

package stackoverflow; 

import java.util.Scanner; 

public class LoopTest { 

public static void main(String[] args) 
{ 
    // TODO Auto-generated method stub 

    Scanner scanner = new Scanner(System.in); 
    System.out.println("Enter number"); 

    int input = 0; 
    double sum = 0; 
    double avg = 0; 
    int count = 0; 

    //Infinite Loop 
    while (true) 
    { 
     //Accept Number 
     input = scanner.nextInt(); 

     //Check Entered Number 
     if (input != 42) 
     { 
      sum = sum + input ; 
      count = count + 1; 
      avg = sum/count; 
     } 
     else 
      break; 
    } 

    System.out.println("Numbers Entered : " + count); 
    System.out.println("Sum of Numbers : " + sum); 
    System.out.println("Average of Numbers : " + avg); 
} 

} 
+0

这很好。我应该能够弄清楚如何显示输入的最小号码和我自己输入的最大号码。我赞赏 – Drewmann

+0

add int min = 0; \t \t int max = 0; 并改变if as block if ---- if(input!= 42) \t \t \t { \t \t \t \t如果(输入<分钟||分钟== 0) \t \t \t \t \t分钟=输入; \t \t \t \t如果(输入>最大) \t \t \t \t \t最大=输入; \t \t \t \t array [count] = input; \t \t \t \t sum = sum + input; \t \t \t \t count = count + 1; \t \t \t \t avg = sum/count; \t \t \t}然后显示最小值和最大值 –

0

,如果和被设置为0,你可以算42

此外,使用while(true)循环不止,break;结束循环。没有休息statment后执行,所以

int count = 1; 
while(true) { 
    sum += data; 

    System.out.println("Enter another integer "); 
    data = input.nextInt(); 
    count++; 
    if(data == 42) { 
     break; 
    } 
} 
+0

所以我进入到日食并说我运行它并输入“10”“10”“10”和“42”,程序不会进入下一步(总和,平均等),直到您输入42总数应该是30,平均数应该是10,因为它除以3,而是我得到“72总数”和“18平均数”。这有意义吗? – Drewmann

+0

你得到72,因为它就像30 + 42.因此,如果你每次扣除42,你会得到你想要的总和和平均值。这不是“真正的”解决方案,而是您可能想要考虑的建议! :D –

-1

好加计所有你需要做的就是让一个变量

int count = 0; 

例如,然后只需每次添加一个给它的循环重复

+4

“Int”是否已成功为您编译? – mhasan

+0

@mhasan你是什么意思? – KobiF

+0

我希望你知道Java编译器区分大小写 – mhasan

相关问题