Я хочу прочитать 20 предметов, но только 19 читаются через консоль. Любая идея почему?Почему мой цикл for останавливается перед последним индексом?
То, что я хочу, чтобы мой код, чтобы сделать это:
- первый: читать interger к- от стандартного входного буфера (консоль)
второй: прочитать 20 целых чисел в массив
int x[]
static void Main(string[] args) { int k ; int[] x = new int [20]; int[] y = new int [20]; int[] yval = new int[20]; int i; Console.WriteLine("Enter k value"); k = Console.Read(); Console.WriteLine("Enter x values\n "); for (i = 0; i <=19 ; i+=1) { x[i] = int.Parse(Console.ReadLine()); yval[i] = (x[i] + k) % 26; } }
Я подозреваю, что вы обнаружите, что 20 читаются, но первое не то, что вы ожидаете от этого, из-за использования 'Console.Read()', которое читает один символ. Возможно, вы хотели 'k = int.Parse (Console.ReadLine());' там? (В качестве примечания я настоятельно рекомендую вам объявлять переменные в точке первого использования, а не помещать их в верхнюю часть метода.) –
@JonSkeet Спасибо. Я думаю, что это может быть проблемой. Я только что видел, что К дал странный результат. Я также догадываюсь из того, что вы только что сказали, что 'Console.Read()' влияет на другие строки ... Что касается объявления переменной, это привычка программирования C. Спасибо за совет, хотя (сейчас я начну работать так) –
Возможно, потому что вы говорите «i <= 19»? Я не совсем уверен, у меня обычно были проблемы при этом. – MrStank