Arrays - Exercise 10. LadyBugs
Здравейте колеги.
https://pastebin.com/Ux1xeWtY
Получавам 30 от 100 и всички грешки освен една от тях са ми от RunTimeError. Вериятно излизам от array-а някъде. Идея къде ми е грешката ?
Благодаря ви.
Здравейте колеги.
https://pastebin.com/Ux1xeWtY
Получавам 30 от 100 и всички грешки освен една от тях са ми от RunTimeError. Вериятно излизам от array-а някъде. Идея къде ми е грешката ?
Благодаря ви.
Здравей,
Поправил съм грешките до 100/100:
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int[] ladybugs = new int[int.Parse(Console.ReadLine())];
int[] indexesOfLadyBugs = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
for (int i = 0; i < indexesOfLadyBugs.Length; i++)
{
if (indexesOfLadyBugs[i] >= 0 && indexesOfLadyBugs[i] < ladybugs.Length) //!!!
{
ladybugs[indexesOfLadyBugs[i]] = 1;
}
}
string command = Console.ReadLine();
while (command != "end")
{
string[] threeWordsCommand = command.Split().ToArray();
int indexOfLadyBug = int.Parse(threeWordsCommand[0]);
int positionsMoved = int.Parse(threeWordsCommand[2]);
if (indexOfLadyBug >= 0 && indexOfLadyBug < ladybugs.Length && ladybugs[indexOfLadyBug] == 1) // indexOfLadyBug >= 0 && indexOfLadyBug < ladybugs.Length) !!!
{
//if (positionsMoved < 0)
//{
// if (threeWordsCommand[1] == "right")
// {
// threeWordsCommand[1] = "left";
// positionsMoved = Math.Abs(positionsMoved);
// }
// else
// {
// threeWordsCommand[1] = "right";
// positionsMoved = Math.Abs(positionsMoved);
// }
//}
ladybugs[indexOfLadyBug] = 0;
if (threeWordsCommand[1] == "left")
{
positionsMoved = -positionsMoved;
}
while (true)
{
if (indexOfLadyBug + positionsMoved >= ladybugs.Length || indexOfLadyBug + positionsMoved < 0)
{
break;
}
if (ladybugs[indexOfLadyBug + positionsMoved] == 0)
{
ladybugs[indexOfLadyBug + positionsMoved] = 1;
break;
}
positionsMoved += positionsMoved;
}
//if (threeWordsCommand[1] == "right")
//{
// if (indexOfLadyBug + positionsMoved >= 0 && indexOfLadyBug + positionsMoved < ladybugs.Length)
// {
// if (ladybugs[indexOfLadyBug + positionsMoved] == 1 && indexOfLadyBug + positionsMoved + 1 < ladybugs.Length)
// {
// for (int i = indexOfLadyBug; i < ladybugs.Length; i += positionsMoved)
// {
// if (indexOfLadyBug + positionsMoved >= ladybugs.Length || indexOfLadyBug + positionsMoved < 0)
// {
// break;
// }
// if (ladybugs[i] != 1)
// {
// ladybugs[i] = 1;
// }
// }
// }
// else if (ladybugs[indexOfLadyBug + positionsMoved] == 0)
// {
// ladybugs[indexOfLadyBug + positionsMoved] = 1;
// }
// }
//}
//else
//{
// if (indexOfLadyBug - positionsMoved >= 0 && indexOfLadyBug - positionsMoved < ladybugs.Length)
// {
// if (ladybugs[indexOfLadyBug - positionsMoved] == 1 && (indexOfLadyBug + positionsMoved) - 1 < ladybugs.Length)
// {
// for (int i = indexOfLadyBug - positionsMoved; i >= 0; i--)
// {
// if (ladybugs[i] != 1)
// {
// ladybugs[i] = 1;
// }
// }
// }
// else if (ladybugs[indexOfLadyBug - positionsMoved] == 0)
// {
// ladybugs[indexOfLadyBug - positionsMoved] = 1;
// }
// }
//}
}
command = Console.ReadLine();
}
Console.WriteLine(String.Join(' ', ladybugs));
}
}
Поздрави,
Иван
А какво трябва да се прави при отместване от типа:
0 right -2?
Това равно ли е на 0 left 2?