One of our YouTube channel subscribers faced this question in a C# written test. Write a program in c# to subtract the largest even number and smallest odd number in the given array elements. This has to be achieved without using LINQ.
The output of the program should be as shown below.
using System;
namespace Demo
{
class Program
{
static void Main()
{
int?[] Numbers = { 555, 3, 1, 20, 1000 };
int? largestEvenNumber = null;
int? smallestOddNumber = null;
foreach (int i in Numbers)
{
if ((i % 2) == 0)
{
if (!largestEvenNumber.HasValue || i > largestEvenNumber)
{
largestEvenNumber = i;
}
}
else
{
if (!smallestOddNumber.HasValue || i < smallestOddNumber)
{
smallestOddNumber = i;
}
}
}
if (largestEvenNumber == null)
{
Console.WriteLine("Array does not contain any even number");
}
else
{
Console.WriteLine("Largest even number = " + largestEvenNumber);
}
if (smallestOddNumber == null)
{
Console.WriteLine("Array does not contain any odd number");
}
else
{
Console.WriteLine("Smallest odd number = " + smallestOddNumber);
}
if (largestEvenNumber != null && smallestOddNumber != null)
{
Console.WriteLine("{0} - {1} = {2}", largestEvenNumber,
smallestOddNumber, (largestEvenNumber - smallestOddNumber));
}
}
}
}
The logic for finding the largest even number and smallest odd number becomes much easier when we use the following LINQ functions.
1. Where()
2. Max()
3. Min()
using System;
using System.Linq;
namespace Demo
{
class Program
{
static void Main()
{
int?[] Numbers = { 555, 3, 1, 20, 1000 };
int? largestEvenNumber = Numbers.Where(x => x % 2 == 0).Max();
int? smallestOddNumber =
smallestOddNumber = Numbers.Where(x => x % 2 != 0).Min();
smallestOddNumber = Numbers.Where(x => x % 2 != 0).Min();
if (largestEvenNumber == null)
{
Console.WriteLine("Array does not contain any even number");
}
else
{
Console.WriteLine("Largest even number = " + largestEvenNumber);
}
if (smallestOddNumber == null)
{
Console.WriteLine("Array does not contain any odd number");
}
else
{
Console.WriteLine("Smallest odd number = " + smallestOddNumber);
}
if (largestEvenNumber != null && smallestOddNumber != null)
{
Console.WriteLine("{0} - {1} = {2}", largestEvenNumber,
smallestOddNumber, (largestEvenNumber - smallestOddNumber));
}
}
}
}


0 comments:
Post a Comment
Note: only a member of this blog may post a comment.