Exercise: Arrays - C# Fundamentals - май 2020 -10. LadyBugs
здравейте имате ли идея за корекция
изхода съвпада в ide
40 точки
using System;
using System.Linq;
namespace dey_of_week
{
class Program
{
static void Main(string[] args)
{
int num = int.Parse(Console.ReadLine());
int[] f = new int[num];
int[] arr = Console.ReadLine().Split().Select(int.Parse).ToArray();
for (int j = 0; j < arr.Length; j++)
{
f[arr[j]] = 1;
}
string n = Console.ReadLine();
while (n != "end")
{
string[] comand = n.Split();
int comand0 = int.Parse(comand[0]);
string comand1 = comand[1];
int comand2 = int.Parse(comand[2]);
if (comand0 >= 0§§comand0 < f.Length §§ f[comand0] == 1)
{
f[comand0] = 0;
if (comand1 == "left")
{
while (comand0 - comand2 >= 0)
{
if (f[comand0 - comand2] == 0)
{
f[comand0 - comand2] = 1;
break;
}
comand0 -= comand2;
}
}
else if (comand1 == "right")
{
while (comand0 + comand2 < f.Length)
{
if (f[comand0 + comand2] == 0)
{
f[comand0 + comand2] = 1;
break;
}
comand0 += comand2;
}
}
}
n = Console.ReadLine();
}
Console.WriteLine(string.Join(" ", f));
}
}
}
и аз се чудя как да станат по кратки ,много трябва да се внимава с минусите и границите на променливите в условията
как може да се съкрати кода?
Здравей,
давам ти мой вариант (има и други...):
Поздрави,
Иван
индексите за подаване на стойност 1 в масива ,който има само нули,трябва да пoсочват клетките на неговата адресирана памет и съответните индекси ,а отрицателните стойности в командите може да променят посоката на запис върху елемент със стоиност 0 към 1 по индексите на манипулирания масив и така е вероятно да се достъпи началната или последната клетка от неговата памет .Извън границите на масива незнаем дали има друг негов адрес със заделена памет ,който да е веднага след или пред първия
Благодаря ,бях започнал по тази схема да режавам въпреки ,че на записа от упражненията е решена