Zig-Zag Arrays Проблем C#
Условие : https://imgur.com/a/AD9NrXJ
Моето решение : https://pastebin.com/ivPj9YNx
Минава нулевите тестове + още един и на всички други дава Runtime Error.
Условие : https://imgur.com/a/AD9NrXJ
Моето решение : https://pastebin.com/ivPj9YNx
Минава нулевите тестове + още един и на всички други дава Runtime Error.
Проблема ти е че при нечетно n във for цикъла където разменяш елементите излизаш извън рамките на масива, ето твоето решение с леки модификации ;) https://pastebin.com/vVA3Z8np
Когато въртиш цикъла по i ще имаш 2 случая (при четно и не четно i ).
В зависимост от итераторите ще добавяш елемента към първия или втория масив.
Ето ти едно пешение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
List<int> firstList = new List<int>();
List<int> secondList = new List<int>();
for (int i = 1; i <= n; i++)
{
string line = Console.ReadLine();
int[] input = line.Split().Select(int.Parse).ToArray();
for (int j = 0; j < input.Length; j++)
{
if ((i % 2 == 0) == false)
{
if (j % 2 == 0)
{
firstList.Add(input[j]);
}
else
{
secondList.Add(input[j]);
}
}
else
{
if (j % 2 == 0)
{
secondList.Add(input[j]);
}
else
{
firstList.Add(input[j]);
}
}
}
}
Console.WriteLine(string.Join(" ",firstList));
Console.WriteLine(string.Join(" ", secondList));
}
}
}
using System;
using System.Linq;
namespace P03ZigZagArrays
{
class P03ZigZagArrays
{
static void Main(string[] args)
{
int numberOfRows = int.Parse(Console.ReadLine());
int[] arrayOddΙndices = new int[numberOfRows];
int[] arrayEvenΙndices = new int[numberOfRows];
for (int i = 0; i < numberOfRows; i++)
{
int[] inputNumbers;
if (i % 2 == 0)
{
inputNumbers = Console.ReadLine()
.Split()
.Select(int.Parse)
.ToArray();
}
else
{
inputNumbers = Console.ReadLine()
.Split()
.Select(int.Parse).Reverse()
.ToArray();
}
for (int j = 0; j < inputNumbers.Length; j++)
{
for (int k = j; k < inputNumbers.Length - 1; k++)
{
arrayOddΙndices[i] = inputNumbers[k];
}
arrayEvenΙndices[i] = inputNumbers[j];
}
}
string printFirsArray = string.Join(' ', arrayOddΙndices);
string printSecondArray = string.Join(' ', arrayEvenΙndices);
Console.WriteLine(printFirsArray);
Console.WriteLine(printSecondArray);
}
}
}
За по-кратко решение не можах да се сетя.
Това е моето решение на задачата: https://pastebin.com/TEh5pNnE.