
Using System; using System.IO; using System.Linq; using System.Collections.Generic; namespace
CSharp_Shell { public static class Program { public static void Main() { string X; string not; string F; string A; X = "Привет"; string[] nota = new string[7]; nota[1] = "До"; nota[2] = "Ре"; nota[3] = "Ми"; nota[4] = "Фа"; nota[5] = "Соль"; nota[6] = "Ля"; nota[7] = "Си"; Console.WriteLine("Введите ноту"); F = Console.ReadLine(); A = F+nota[1+3]; Console.WriteLine(A); } } } Эта программа не хочет запускаться она должна прибавлять по 3 символа к примеру вводим до, а она выводит ми.

Ответы на вопрос

Ответ:
static void Main(string[] args)
{
string F;
string[] nota = new string[7];
nota[0] = "До";
nota[1] = "Ре";
nota[2] = "Ми";
nota[3] = "Фа";
nota[4] = "Соль";
nota[5] = "Ля";
nota[6] = "Си";
Console.WriteLine("Введите ноту");
F = Console.ReadLine();
int Index = -1;
for(int i=0;i<7;i++)
{
if(nota[i]==F)
{
Index = i+2;
if (Index > 6) Index = Index - 7;
}
}
if(Index == -1) Console.WriteLine("Нота не найдена");
else Console.WriteLine(nota[Index]);
Console.ReadLine();
}



Проблема в вашем коде заключается в неправильном доступе к элементам массива nota
. В C# индексы массива начинаются с 0, поэтому первый элемент имеет индекс 0, а последний элемент имеет индекс 6 (а не 1 и 7, как у вас). Попробуйте следующий исправленный код:
csharpusing System;
namespace CSharp_Shell
{
public static class Program
{
public static void Main()
{
string X;
string not;
string F;
string A;
X = "Привет";
string[] nota = new string[7];
nota[0] = "До";
nota[1] = "Ре";
nota[2] = "Ми";
nota[3] = "Фа";
nota[4] = "Соль";
nota[5] = "Ля";
nota[6] = "Си";
Console.WriteLine("Введите ноту");
F = Console.ReadLine();
// Проверка введенной ноты и добавление 3 символов из массива nota
int index = Array.IndexOf(nota, F);
if (index != -1 && index + 3 < nota.Length)
{
A = nota[index + 3];
Console.WriteLine(A);
}
else
{
Console.WriteLine("Нота не найдена или невозможно добавить 3 символа.");
}
}
}
}
В этом исправленном коде мы сначала находим индекс введенной ноты в массиве nota
с помощью Array.IndexOf
. Затем мы проверяем, существует ли такая нота и можно ли добавить к ней 3 символа. Если да, то мы выводим соответствующую ноту. В противном случае выводим сообщение об ошибке.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili