This is what I tried:
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();
}
}
}
I don't know why it doesn't work. The program should stop when odd numbers and even number equals N.
CodePudding user response:
You never update n
so the loop will never exit
So evenNumbersCount
and oddNumbersCount
will never count up
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();
}
}
}
CodePudding user response:
It seems you've forgotten to get new number inside the loop. It keeps checking the first number
ItThe while loop works until the 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);