Basically i need to make a method that switches the value of two numbers. For some reason at the moment when my program gets to this part it comes up with an error saying input string was not in a correct format. Below i have pasted the bit of the code with the method and the call, any help would be great, thanks in advance:
int originalNumber;
int switchNumber;
Console.WriteLine("Enter a number");
originalNumber = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("You entered {0}, please enter a second number for it to be switched with", originalNumber);
switchNumber = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("The first number is {0} and the second is {1}, press any key to switch them", originalNumber, switchNumber);
Console.ReadKey();
SwapNumbers(originalNumber, switchNumber);
Console.WriteLine("The first number is now {0} and the second is now {1)", originalNumber, switchNumber);
Console.WriteLine("Press any key to end program");
Console.ReadKey();
}
public static void SwapNumbers(int firstNumber, int secondNumber)
{
int temp = 0;
temp = firstNumber;
firstNumber = secondNumber;
secondNumber = temp;
}
Loading
VulpesPosted Jan 30, 2013, 9:28 AM
{1) should, of course, be {1}
Jamie DalleyPosted Jan 30, 2013, 9:38 AM
Jamie DalleyPosted Jan 30, 2013, 9:04 AM
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Assignment
{
class Program
{
static void Main(string[] args)
{
// 1)
Console.WriteLine("Press any key to see question 1");
Console.ReadKey();
Console.WriteLine("Hello World");
// 2)
Console.WriteLine("Press any key to see question 2");
Console.ReadKey();
int intergerVariable;
intergerVariable = 19;
Console.WriteLine("{0}", intergerVariable);
// 3)
Console.WriteLine("Press any key to see question 3");
Console.ReadKey();
Console.WriteLine("Some text {0}", intergerVariable);
//4
Console.WriteLine("Press any key to see question 4");
Console.ReadKey();
int intergerRead;
Console.WriteLine("Please enter an integer");
intergerRead = Convert.ToInt32(Console.ReadLine());
// checking code is correct
Console.WriteLine("You entered {0}", intergerRead);
//5
Console.WriteLine("Press any key to see question 5");
Console.ReadKey();
Console.WriteLine("This uses a for loop");
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum = i + sum;
Console.WriteLine("Sum so far is {0}", sum);
}
//6
Console.WriteLine("Press any key to see question 6");
Console.ReadKey();
Console.WriteLine("This uses a while loop");
int sumTwo = 0;
int startPoint = 1;
int limit = 10;
while (startPoint <= limit)
{
sumTwo = sumTwo + startPoint;
startPoint++;
Console.WriteLine("Sum so far is {0}", sumTwo);
}
//7
Console.WriteLine("Press any key to see question 7");
Console.ReadKey();
int MaxValue;
int RandomNumber;
Random MyRandom;
MaxValue = 20;
MyRandom = new Random();
RandomNumber = MyRandom.Next(MaxValue);
int[] firstArray = new int[10];
for (int i = 0; i < 10; i++)
{
RandomNumber = MyRandom.Next(MaxValue);
firstArray[i] = RandomNumber;
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Item {0} in the array is {1}", i, firstArray[i]);
}
//8
Console.WriteLine("Press any key to see question 8");
Console.ReadKey();
Console.WriteLine("The lowest number in the array is {0}", firstArray.Min());
//9
Console.WriteLine("Press any key to see question 9");
Console.ReadKey();
int j;
Console.Write("Enter number to search for : ");
j = int.Parse(Console.ReadLine());
int index = linear_search(j, firstArray);
if (index >= 0)
{
Console.WriteLine("{0} is found at index {1} in the array", j, index);
}
else
{
Console.WriteLine("{0} is not found in the array", j);
}
Console.WriteLine("Press any key to see question 10");
Console.ReadKey();
int intergerOne = 8;
int intergerTwo = 5;
int temp = 0;
Console.WriteLine("Integer one is {0}, integer two is {1}", intergerOne, intergerTwo);
Console.WriteLine("Press any key to switch the integers");
Console.ReadKey();
temp = intergerOne;
intergerOne = intergerTwo;
intergerTwo = temp;
Console.WriteLine("Integer one is now {0}, integer two is now {1}", intergerOne, intergerTwo);
Console.WriteLine("Press any key to see question 11");
Console.ReadKey();
Console.WriteLine("Press any key to see the first array");
Console.ReadKey();
int[] arrayToCopy;
arrayToCopy = new int[5];
arrayToCopy[0] = 1;
arrayToCopy[1] = 2;
arrayToCopy[2] = 3;
arrayToCopy[3] = 4;
arrayToCopy[4] = 5;
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Item {0} in the original array is {1}", i, arrayToCopy[i]);
}
Console.WriteLine("Press any key to see the second array");
Console.ReadKey();
int[] arrayToCopyTo;
arrayToCopyTo = new int[5];
arrayToCopyTo[0] = 0;
arrayToCopyTo[1] = 0;
arrayToCopyTo[2] = 0;
arrayToCopyTo[3] = 0;
arrayToCopyTo[4] = 0;
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Item {0} in the second array is {1}", i, arrayToCopyTo[i]);
}
Console.WriteLine("Press any key to see the second array with the values of the first array copied into it");
Console.ReadKey();
for (int i = 0; i < 5; i++)
{
arrayToCopyTo[i] = arrayToCopy[i];
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Item {0} in the second array is now {1}", i, arrayToCopyTo[i]);
}
int originalNumber;
int switchNumber;
Console.WriteLine("Enter a number");
originalNumber = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("You entered {0}, please enter a second number for it to be switched with", originalNumber);
switchNumber = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("The first number is {0} and the second is {1}, press any key to switch them", originalNumber, switchNumber);
Console.ReadKey();
SwapNumbers(ref originalNumber, ref switchNumber);
Console.WriteLine("The first number is now {0} and the second is now {1)", originalNumber, switchNumber);
Console.WriteLine("Press any key to end program");
Console.ReadKey();
}
public static void SwapNumbers(ref int firstNumber, ref int secondNumber)
{
int temp = 0;
temp = firstNumber;
firstNumber = secondNumber;
secondNumber = temp;
}
static int linear_search(int search, int[] arr)
{
int index = -1;
for (int i = 0; i < arr.Length; i++)
{
if (arr[i] == search)
{
index = i;
break;
}
}
return index;
}
}
}
VulpesPosted Jan 30, 2013, 9:00 AM
Jamie DalleyPosted Jan 30, 2013, 8:54 AM
VulpesPosted Jan 30, 2013, 8:21 AM
Also, as the code stands, it won't actually swap the numbers because you're passing the arguments to the method by value rather than by reference.
The Swap method should be:
public static void SwapNumbers(ref int firstNumber, ref int secondNumber)
{
int temp = 0;
temp = firstNumber;
firstNumber = secondNumber;
secondNumber = temp;
}
and it should be called with:
SwapNumbers(ref originalNumber, ref switchNumber);