using System;

namespace RecipeApp
{
class Recipe
{
public string[] Ingredients { get; set; }
public string[] Steps { get; set; }

public void DisplayRecipe()
{
Console.WriteLine("Ingredients:");
foreach (string ingredient in Ingredients)
{
Console.WriteLine("- " + ingredient);
}

Console.WriteLine("\nSteps:");
for (int i = 0; i < Steps.Length; i++)
{
Console.WriteLine((i + 1) + ". " + Steps[i]);
}
}

public void ScaleRecipe(double factor)
{
Console.WriteLine("\nScaled Recipe:");
foreach (string ingredient in Ingredients)
{
string[] parts = ingredient.Split(' ');
double quantity = Convert.ToDouble(parts[0]) * factor;
Console.WriteLine("- " + quantity + " " + parts[1] + " " + parts[2]);
}
}
}

class Program
{
static void Main(string[] args)
{
Recipe recipe = new Recipe();

Console.Write("Enter the number of ingredients: ");
int numIngredients = Convert.ToInt32(Console.ReadLine());
string[] ingredients = new string[numIngredients];
for (int i = 0; i < numIngredients; i++)
{
Console.Write("Enter ingredient " + (i + 1) + ": ");
ingredients[i] = Console.ReadLine();

Console.Write("Enter the quantity " + (i + 1) + ": ");
ingredients[i] = Console.ReadLine();

Console.Write("Enter the meassurement " + (i + 1) + ": ");
ingredients[i] = Console.ReadLine();
}
recipe.Ingredients = ingredients;

Console.Write("\nEnter the number of steps: ");
int numSteps = Convert.ToInt32(Console.ReadLine());
string[] steps = new string[numSteps];
for (int i = 0; i < numSteps; i++)
{
Console.Write("Enter step " + (i + 1) + ": ");
steps[i] = Console.ReadLine();
}
recipe.Steps = steps;

recipe.DisplayRecipe();

Console.Write("\nEnter a scaling factor (0.5, 2, or 3): ");
double factor = Convert.ToDouble(Console.ReadLine());
recipe.ScaleRecipe(factor);

Console.WriteLine("\nPress any key to clear recipe and enter a new one...");
Console.ReadKey();
Console.Clear();

Main(args);
}
}
}

fix the system.FormatException on the 31st line to allow for "cup", "Kg", "ml", "L", "g" to be entered into the meassurment

To fix the System.FormatException on the 31st line to allow for "cup", "Kg", "ml", "L", "g" to be entered into the measurement, you can modify the code as follows:

Replace the existing line:

```csharp
double quantity = Convert.ToDouble(parts[0]) * factor;
```

With the following code:

```csharp
double quantity;
if(double.TryParse(parts[0], out quantity))
{
Console.WriteLine("- " + quantity * factor + " " + parts[1] + " " + parts[2]);
}
else
{
Console.WriteLine("- Invalid quantity format: " + parts[0]);
}
```

This code snippet uses `TryParse` method to attempt to convert the quantity part of the ingredient into a double value. If successful, it calculates the scaled quantity and displays it along with the measurement unit. If the conversion fails, it displays a message indicating that the quantity format is invalid.