Slight problem with my array program
-
Instead of my program showing this: Enter element value: 0 Enter element value: 1 Enter element value: 2 ...and so forth it is currently showing this: Enter element value: 0 Enter element value: 0 Enter element value: 0 What am I doing wrong?
using System;
class InputArrayValues
{
static void Main()
{
int[] nums = new int[5];for (int i = 0; i < 5; i++) { Console.Write("Enter element value " + nums\[i\] + ": "); nums\[i\] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(); Console.Write("The array values you entered are: "); for (int i = 0; i < 5; i++) Console.Write(nums\[i\] + " "); Console.WriteLine(); Console.WriteLine(); }
}
-
Instead of my program showing this: Enter element value: 0 Enter element value: 1 Enter element value: 2 ...and so forth it is currently showing this: Enter element value: 0 Enter element value: 0 Enter element value: 0 What am I doing wrong?
using System;
class InputArrayValues
{
static void Main()
{
int[] nums = new int[5];for (int i = 0; i < 5; i++) { Console.Write("Enter element value " + nums\[i\] + ": "); nums\[i\] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(); Console.Write("The array values you entered are: "); for (int i = 0; i < 5; i++) Console.Write(nums\[i\] + " "); Console.WriteLine(); Console.WriteLine(); }
}
Console.Write("Enter element value " + nums\[i\] + ": ");
Should be:
Console.Write("Enter element value " + i + ": ");
Do you see why?
The difficult we do right away... ...the impossible takes slightly longer.
-
Instead of my program showing this: Enter element value: 0 Enter element value: 1 Enter element value: 2 ...and so forth it is currently showing this: Enter element value: 0 Enter element value: 0 Enter element value: 0 What am I doing wrong?
using System;
class InputArrayValues
{
static void Main()
{
int[] nums = new int[5];for (int i = 0; i < 5; i++) { Console.Write("Enter element value " + nums\[i\] + ": "); nums\[i\] = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine(); Console.Write("The array values you entered are: "); for (int i = 0; i < 5; i++) Console.Write(nums\[i\] + " "); Console.WriteLine(); Console.WriteLine(); }
}
Richard is spot on with the problem you have noticed, but do yourself a favour and don't use Convert for user input. If the user mistypes - and everybody does - then Convert will fail and your app will crash. That's OKish with five values, but for a user it's very, very annoying if they type 19 of 20 and the app crashes and throws everything away! Instead, use the TryParse methods:
int\[\] nums = new int\[5\]; for (int i = 0; i < 5; i++) { do { Console.Write("Enter element value " + i + ": "); string input = Console.ReadLine(); if (int.TryParse(input, out nums\[i\])) { break; } Console.WriteLine(input + " is not a number!"); } while (true); }
Sent from my Amstrad PC 1640 Never throw anything away, Griff Bad command or file name. Bad, bad command! Sit! Stay! Staaaay... AntiTwitter: @DalekDave is now a follower!