计算用户输入的偶数和奇数-java

计算用户输入的偶数和奇数-java,java,Java,嗨,这是我正在做的课程中的一个问题想要的 程序打印“类型编号”,直到用户键入编号 -1.当用户键入数字-1时,程序会打印“谢谢,再见!”!“结束了 程序应打印用户输入的数字总和 (没有数字-1) 程序应打印用户键入的数字(无 数字是-1) 程序应打印用户键入的数字的平均值 (没有数字-1) 5.程序应打印 用户键入(不带数字-1)。 我已经完成了1-4,但完全停留在5。我确实开始尝试解决它,包括在我的while循环中加入for循环,但除了它不起作用之外,它看起来很不合适,所以我把它移除了。无论如

嗨,这是我正在做的课程中的一个问题想要的

  • 程序打印“类型编号”,直到用户键入编号 -1.当用户键入数字-1时,程序会打印“谢谢,再见!”!“结束了
  • 程序应打印用户输入的数字总和 (没有数字-1)
  • 程序应打印用户键入的数字(无 数字是-1)
  • 程序应打印用户键入的数字的平均值 (没有数字-1)

    5.程序应打印 用户键入(不带数字-1)。

  • 我已经完成了1-4,但完全停留在5。我确实开始尝试解决它,包括在我的while循环中加入for循环,但除了它不起作用之外,它看起来很不合适,所以我把它移除了。无论如何,这是我迄今为止所做的,正如我所说,所有这些都以其神奇的方式工作

    因此,如果有人能帮助我回答第5个问题,那就太好了。ps.我确信我到目前为止所做的工作本可以写得更好,但现在不要把重点放在这一点上,因为对于我和我使用Java的情况来说,这简直是一个奇迹

    import java.util.Scanner;
    
    public class LoopsEndingRemembering { 
    
        public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);
            int sum = 1;  // to counteract the -1 from the user
            int total = 0;
            double avg;
            //int even = 0;
            //int odd = 0;
    
            System.out.println("Type numbers:");
    
            while (true) {
                int numbers = Integer.parseInt(reader.nextLine());
    
                sum += numbers;
                total++;
                avg = ((double) sum) / (total - 1);
    
                if (numbers == -1) {
    
                    System.out.println("Thank you and see you later!");
                    System.out.println("The sum is " + sum);
                    System.out.println("How many numbers: " + (total - 1));
                    System.out.println("Average: " + avg);
                    //System.out.println("Even numbers: " + even);
                    //System.out.println("Odd numbers: " + odd);
                    break; 
                }
            }
        }
    }
    

    您可以在一个计数奇数和一个计数偶数的位置存储变量。如果该数字为奇数,则递增奇数变量。如果为偶数,则递增偶数变量。使用%运算符将输入的剩余部分除以2

    int oddNumbers = 0;
    int evenNumbers = 0;
    
    if(numbers % 2 == 1){
        oddNumbers++;
    } else if(numbers % 2 == 0){
        evenNumbers++;
    }
    
    导入java.util.Scanner; 公共班机{

    public static void main(String[] args) {
       Scanner in= new Scanner (System.in);
       int sum = 0;
       System.out.print("Enter limit number: ");
       int limit = in.nextInt();
       int oddNumbers = 0;
       int evenNumbers = 0;
    
       for(int i= 1;i<=limit;i++)
       {
           System.out.println("Enter limit number: "+i+"");
           int numbers= in.nextInt();
    
           if(numbers %2==0)
           {
               evenNumbers++;
           }
           else if(numbers %2==1)
           {
               oddNumbers++;
           }
       }
       System.out.println("There are: "+oddNumbers+" odd numbers");
       System.out.println("There are :"+evenNumbers+" even numbers");
    
           }
    
       }
    
    publicstaticvoidmain(字符串[]args){
    扫描仪输入=新扫描仪(系统输入);
    整数和=0;
    系统输出打印(“输入限制编号:”);
    int limit=in.nextInt();
    整数=0;
    整数=0;
    
    对于(int i=1;我有一个提示,请查找此符号。%n弄清楚为什么会这样做可能会很有趣:
    odd+=number&1
    。当然,你不需要
    偶数
    -它总是
    total-odd
    嗨,Slenderton谢谢你的回答。我已经有类似的东西了,但我无法计算出它需要放在我的代码中的什么地方。有吗想法?如果你取消对变量的注释,If语句应该添加到
    avg=((double)sum)/(total-1);
    OK我对它进行了排序。我把你给我的东西放在while循环中。我想我犯的错误是我把代码放在If语句中了-If(number=-1){.很好的一个,如果你知道这有什么意义,就很容易了.另外,请确保你检查
    数字
    的值(当它等于-1时)没有添加到奇数变量中,因为
    -1%2
    的计算结果为1,因此它将被视为一个额外的奇数.请避免使用“仅代码”回答;解释你在做什么。然后:有一个预览功能,你应该使用它来确保你所有的代码都是正确的格式/缩进的;而不是把这样的混乱丢给别人。
    import java.lang.Math;
    
    public class HelloWorld {
    
        public static void main(String[] args) {
    
            int firstnum = 4;
            int lastnum = 104;
            int evncnt, oddcnt;
            int count;
    
    
            System.out.println("First number is " + firstnum);
            System.out.println("Last number is " + lastnum);
    
            count = lastnum - firstnum + 1;
    
            System.out.println("Total numbers are " + count);
    
            if (count % 2 == 0) {
                    System.out.println("Total even numbers are " + count / 2);
                    System.out.println("Total odd numbers are " + count / 2);
    
            } else {
                if (firstnum % 2 == 0) {
                    System.out.println("Total Even numbers are ");
                    System.out.println((count + 1) / 2);
    
                    System.out.println("Total Odd numbers are ");
    
                    System.out.println((count - 1) / 2);
                } else {
                    System.out.println("Total even numbers are ");
                    System.out.println((count - 1) / 2);
                    System.out.println("Total odd numbers are ");
    
                    System.out.println((count + 1) / 2);
    
                }
            }
        }
    }