【问题标题】:Counting things that aren't there?计算不存在的东西?
【发布时间】:2014-01-30 05:11:18
【问题描述】:

当我编译这个并输入 5 个偶数或 5 个奇数时,计数结果为 6 个偶数和 1 个奇数或 6 个奇数和 1 个偶数。我想我做的一切都是对的,请帮助它明天晚上到期。抱歉,此时我写这篇文章只是为了提交它。

    String oneString="";
    String twoString="";
    String threeString="";
    String fourString="";
    String fiveString="";

    int evenCount = 0, oddCount = 0, zeroCount = 0;

    oneString = JOptionPane.showInputDialog ("Input your first number");
    one = Integer.parseInt (oneString);
    while (one > 0) {
    one = one % 10;
    if (one%2==0) 
    {
       evenCount++;
    }
    else 
    { 
       oddCount++;
    }
    one = one / 10;
   }
   twoString = JOptionPane.showInputDialog ("Input your second number");
    two = Integer.parseInt (twoString);

   while (two > 0) {
    two = two % 10;
    if (two%2==0) 
    {
       evenCount++;
    }
    else 
    { 
       oddCount++;
    }
    two = two / 10;
   }
   threeString = JOptionPane.showInputDialog ("Input your third number");
    three = Integer.parseInt (threeString);

   while (three > 0) {
    three = three % 10;
    if (three%2==0) 
    {
       evenCount++;
    }
    else 
    { 
       oddCount++;
    }
    three = three / 10;
   }
   fourString = JOptionPane.showInputDialog ("Input your fourth number");
    four = Integer.parseInt (fourString);
   while (four > 0) {
    four = four % 10;
    if (four%2==0) 
    {
       evenCount++;
    }
    else 
    { 
       oddCount++;
    }
    four = four / 10;
   }
   fiveString = JOptionPane.showInputDialog ("Input your fifth number");
    five = Integer.parseInt (fiveString);
    while (five > 0) 
   {
        five = five % 10;
        if (five%2==0) 
        {
           evenCount++;
        }
        else 
        { 
            oddCount++;
        }
        five = five / 10;
   }
   float count;
   count = evenCount++ + oddCount++;
   System.out.println(); 
   System.out.printf("Even: %d Odd: %d",evenCount, oddCount);
   float percentage;
   percentage = evenCount * 100 / count;
   System.out.println(" Percentage  of Even " + percentage);
   float oddpercentage;
   oddpercentage = oddCount * 100 / count;
   System.out.println(" Percentage  of Odd " + oddpercentage);

【问题讨论】:

    标签: java math count bluej


    【解决方案1】:

    这里:

    count = evenCount++ + oddCount++;
    

    您同时增加了 evenCount 和oddCount。相反,我可以提出以下建议:

    count = evenCount + oddCount;
    

    另外,你为什么先用 10 计算模数,然后用 2 计算模数?

    例子:

    five = five % 10;
    if (five%2==0) 
    

    例子的第一行没用,因为:

    ((five % 10) % 2) == five % 2
    

    因此,您不需要为五个变量计算以 10 为模的值。总比没有的。

    此外,如果某些事情不正常并且您正在寻求帮助,那么您很可能至少犯了一个错误。

    【讨论】:

      【解决方案2】:

      我猜你的问题就在这里:

      count = evenCount++ + oddCount++;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-10
        • 1970-01-01
        相关资源
        最近更新 更多