从用户读入5个数字并计算输入的正数的频率

时间:2016-11-05 20:19:09

标签: java

难以尝试为上述问题编写代码。请在下面找到代码。必须读入5个数字并计算输入的正数的频率。

import java.util.Scanner;

public class Lab02Ex2PartB {

    public static void main (String [] args){
        Scanner input = new Scanner(System.in);
        System.out.println("Please enter a  positive integer");
        int number = input.nextInt();
        for(int i = -2 ; i < 4 ; i++) 
            System.out.println("Positive Count is: " + i); 
    }           
}

2 个答案:

答案 0 :(得分:0)

您的问题是您有一个需要重复的任务(关于用户输入值);但是你的循环(反复做事的完美意思)......不会覆盖那部分!

for(int i = -2; i&lt; 4; i ++)      System.out.println(“正数是:”+ i);

相反,做一些事情:

for (int loops = 0; loops < 5; loops++) {
  int number = input.nextInt();

当然,你需要记住这5个值,最简单的方法是:使用数组;将您的代码转换为:

int loopCount = 5;
int numbers[] = new[loopCount]; 
for (int loops = 0; loops < loopCount; loops++) {
  numbers[loops] = input.nextInt();

然后,最后,当您询问所有数字时,然后检查阵列中的数据以计算频率。一个简单的方法可以这样工作:

for (int number : numbers) {
  if (number > 0) {
    System.out.println("Frequency for " + number + " is: " + computeFrequency(number, numbers));
  }

用一个小帮手方法:

private int computeFrequency(int number, int allNumbers[]) {
  ... 

请注意:这是为了让你去 - 我不打算为你做所有的功课。你仍然应该坐下来想一想“计算频率”实际意味着什么;以及如何做到这一点。

答案 1 :(得分:0)

试试这个,请记住,如果你只想知道频率(不存储)

import java.util.Scanner;
public class Lab02Ex2PartB {

    public static void main (String [] args){

    int i = 1;// is a counter for the loop
    int positive =0;// counts positive numbers
            while(i<=5){
                Scanner input = new Scanner(System.in);
                System.out.println("Please enter a whole positive number");
                int number = input.nextInt();
                if(number > 0){
                    positive ++;
                }
                i++;
            }
    System.out.println("Positive Count is: "+ positive);