繁体   English   中英

写一个程序,读取N,然后不断读取整数,检查是否有奇数或偶数,直到奇数和偶数都等于N

[英]Write a program that reads N and then continuously read integers and check if there are odd or even until odd and even number equals N

这是我试过的:

using System;

namespace OddAndEvenNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            int requiredOddAndEvenNumbers = Convert.ToInt32(Console.ReadLine());
            int oddNumbersCount = 0;
            int evenNumbersCount = 0;
            int n = Convert.ToInt32(Console.ReadLine());
            while (oddNumbersCount <= requiredOddAndEvenNumbers || evenNumbersCount <= requiredOddAndEvenNumbers)
            {
                if (n % 2 == 0)
                {
                    evenNumbersCount++;
                }
                else if (n % 2 != 0)
                {
                    oddNumbersCount++;
                }
            }
            Console.WriteLine(evenNumbersCount + " " + oddNumbersCount);
            Console.ReadLine();
        }
    }
}

我不知道为什么它不起作用。 当奇数和偶数等于 N 时,程序应该停止。

你永远不会更新n所以循环永远不会退出
所以evenNumbersCountoddNumbersCount永远不会计数

using System;

namespace OddAndEvenNumbers
{
    class Program
    {
        static void Main(string[] args)
        {
            int requiredOddAndEvenNumbers = Convert.ToInt32(Console.ReadLine());
            int oddNumbersCount = 0;
            int evenNumbersCount = 0;
            int n = Convert.ToInt32(Console.ReadLine());
            while (oddNumbersCount <= requiredOddAndEvenNumbers || evenNumbersCount <= requiredOddAndEvenNumbers)
            {
                if (n % 2 == 0)
                {
                    evenNumbersCount++;
                }
                else if (n % 2 != 0)
                {
                    oddNumbersCount++;
                }
                n++;
            }
            Console.WriteLine(evenNumbersCount + " " + oddNumbersCount);
            Console.ReadLine();
        }
    }
}

看来您忘记了在循环中获取新号码。 它不断检查第一个数字 ItThe while 循环工作,直到Odd + Even numbers are equal to n

int requiredOddAndEvenNumbers = Convert.ToInt32(Console.ReadLine());
int oddNumbersCount = 0;
int evenNumbersCount = 0;
int n = 0;

while ((oddNumbersCount + evenNumbersCount) < requiredOddAndEvenNumbers)
{
    n = Convert.ToInt32(Console.ReadLine());
    if (n % 2 == 0)
    {
        evenNumbersCount++;
    }
    else if (n % 2 != 0)
    {
        oddNumbersCount++;
    }
}

Console.WriteLine("evenNumbersCount: {0}", evenNumbersCount);
Console.WriteLine("oddNumbersCount: {0}", oddNumbersCount);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM