计算不能被2,3,5整除的数字

时间:2010-01-23 08:03:52

标签: c# math

在我的程序中,我认为我的count变量没有保持该值。我该怎么办才能举办?这是我的代码。

static void Main(string[] args)
    {
        double a;
        double count = 0;
        Console.WriteLine("Enter the Numbers : ");
        for (double i = 1; i <= 10; i++)
        {
            a = Convert.ToDouble(Console.ReadLine());
            if (a % 2 != 0 || a % 3 != 0 || a % 5 != 0)
            {
                count = count++;
            }
            //else
            //{

           // }
            Console.ReadLine();
        }
        Console.WriteLine("The Numbers That Are divisible by 2,3,5 are : " + count);
        Console.ReadLine();


    }

3 个答案:

答案 0 :(得分:9)

你的错误是count = count++;行。这不会使count增加一个。您只需使用count++;

表达式count++count的值增加1,然后将表达式的值作为count的原始值返回。在这种情况下,count++的增量在分配之前发生,因此count首先增加1,但是您将count++的值(即原始值)分配给{ {1}}再次,所以它根本没有增加。

答案 1 :(得分:7)

您的计划会列出不能被任何这些数字整除的数字。如果您想要计算不能被所有整除的数字,那么您需要使用if (a % 2 != 0 && a % 3 != 0 && a % 5 != 0)代替。如果可能的话,我还建议使用整数而不是双精度。

最后,您的print语句表示 可以被2,3,5整除的数字,但count是可被这些数字整除的数字的数量。< / p>

编辑:您每次测试时都输入10个数字吗?如果你给出一个空白的输入,我不确定你会得到什么样的结果。

答案 2 :(得分:2)

不要添加到jk和David Kanarek在他们的答案中所说的内容或其他人对这些答案的评论,正如jk指出的那样使用count + 1而不是count ++,还有一些注释:

1)你在循环中使用console.Readline()两次,所以用户将输入20个输入,但只会读取10个..

2)如果您使用||,只需在您的if子句中额外考虑Anton的评论你试图捕捉任何条件是真的,换句话说:

 // a=2

  if (a % 2 != 0 || a % 3 != 0 || a % 5 != 0) // False || True || True = True 
        {
            count = count + 1 ;// count will increase
        }

另一方面,使用&amp;&amp; :

 // a=2

  if (a % 2 != 0 &&  a % 3 != 0 &&  a % 5 != 0) // False && True && True = false
        {
            count = count + 1 ; //count will not increase
        }

A useful Link explaining operators