Что-то какой-то ужасно страшный код у вас.
Код вполне работает (в консоль выводится 345678 и bcdef)
Мой вариант кода
1. Нормально именуем сущности в коде.
2. Убираем лишний код.
3. Добавляем проверку входных аргументов
using System;
var intArray = CreateArrayFromIntRange(3, 8);
var charArray = CreateArrayFromCharRange('B', 'F');
Console.WriteLine(string.Join(' ', intArray));
Console.WriteLine(string.Join(' ', charArray));
static int[] CreateArrayFromIntRange(int start, int end)
{
if(start > end)
throw new ArgumentException("start must be less or equal to end");
var length = end - start + 1;
var buffer = new int[length];
var current = start;
for (var i = 0; i < buffer.Length; i++)
buffer[i] = current++;
return buffer;
}
static char[] CreateArrayFromCharRange(char start, char end)
{
if(start > end)
throw new ArgumentException("start must be less or equal to end");
var length = end - start + 1;
var buffer = new char[length];
var current = start;
for (var i = 0; i < buffer.Length; i++)
buffer[i] = current++;
return buffer;
}
nums[k]=nums[k-1]++
Будет работать не так, как вы ожидаете - Индексация массивов происходит по ссылке, а не по значению. Например с List такого не будет, тк там индексатор - это метод, которы возвращает значение по индексу, а не ссылку на элемент.
PS: Если это задание в школе/колледже/универе, то сначала разберитесь в том коде, который я написал, прежде чем его копировать