#c#
#c#
Вопрос:
static void Main(string[] args)
{
int x = int.Parse(Console.ReadLine());
char[] ch = new char[] { };
for(int i = 0; i<x;i )
{
ch[i] = 'o';
}
foreach(char item in ch)
{
Console.WriteLine(item);
}
string a = "w";
string m = new string(ch);
Console.Write(a m a);
ожидаемый результат был «вау», если введено 1, вау, если введено 2 и так далее..
но то, что я получаю, это ошибка index out of range.
Комментарии:
1.
new char[] {}
создает массив размером 0, поэтому для ваших o нет места. Вам нужно создать его таким образом, чтобы он был достаточно большим, чтобы содержать нужное вам количество o.2. При итерации по массиву обычно лучше использовать
Length
свойство:for (int i = 0; i < ch.Length; i )
3. спасибо за помощь .. это действительно помогло.
Ответ №1:
В C # вам нужно объявить размер char
массива (или любого массива).
Чтобы исправить код, просто измените одну строку.
char[] ch = new char[] { }; // incorrect, initialised with size = 0
Для
char[] ch = new char[x]; // initialise the array with size = x
Если вы не знаете, какого размера массив будет во время выполнения, я бы подумал об использовании общего List<T>
вместо этого.
List<T>
реализует множество полезных методов, таких как Add()
который позволяет изменять размер коллекции во время выполнения. Другие List
методы, которые вы можете счесть полезными, включают: Count()
, AddRange()
, Clear()
, IndexOf()
и Remove()
.
Тогда вы могли бы сделать что-то вроде:
List<char> ch = new List<char>();
for(int i = 0; i < x; i )
{
ch.Add('o');
}