Подсчитайте числа, которые не делятся на 2, 3, 5 - PullRequest
0 голосов
/ 23 января 2010

Я считаю, что в моей программе переменная 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 ]

9 голосов
/ 23 января 2010

Ваша ошибка - строка count = count++;. Это не увеличивает count на единицу. Вам нужно использовать только count++;.

Выражение count++ увеличит значение count на единицу, а затем вернет в качестве значения выражения исходное значение count. В этом случае приращение count++ происходит до назначения, поэтому count сначала увеличивается на единицу, но затем вы присваиваете значение count++, то есть исходное значение, снова count, поэтому вообще не увеличивается.

7 голосов
/ 23 января 2010

Ваша программа перечисляет числа, которые не делятся на любое из этих чисел. Если вы хотите посчитать числа, которые не делятся на всех из них, вам нужно вместо этого использовать if (a % 2 != 0 && a % 3 != 0 && a % 5 != 0). Я бы также предложил использовать целые числа вместо двойных, если это возможно.

Наконец, ваше заявление о печати говорит, что числа делятся на 2,3,5, но count - это число чисел, которые не делятся на эти числа.

Редактировать: вы вводите 10 цифр каждый раз, когда вы тестируете? Я не уверен, какой результат вы получите, если не введете пустые данные.

2 голосов
/ 24 января 2010

Не добавить к тому, что jk и Дэвид Канарек сказали в своих ответах, или что другие пишут в комментариях к этим ответам. Как указывает jk, используйте count + 1 вместо count ++, также несколько примечаний:

1) Вы дважды используете console.Readline () в цикле, поэтому пользователь введет 20 входов, но будет прочитано только 10 ..

2) Просто подумайте над комментарием Антона в предложении if, если вы используете || Вы пытаетесь поймать любое из условий, другими словами:

 // a=2

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

с другой стороны, используя &&:

 // a=2

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

Полезная ссылка, объясняющая операторы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...