Може да го инициализираш само вътре в while-a, отвън никъде не се използва.
            int[] nums = Console.ReadLine().Split().Select(int.Parse).ToArray();
            int rotations = int.Parse(Console.ReadLine());
            int[] arrSum = new int[nums.Length];
 
            while (rotations > 0)
            {
                int[] rotated = new int[nums.Length];                
                rotated[0] = nums[nums.Length - 1];
                arrSum[0] += rotated[0];
                for (int i = 1; i < nums.Length; i++)
                {
                        rotated[i] = nums[i - 1];
                        arrSum[i] += rotated[i];
                }
                rotations--;
                nums = rotated;
            }
 
            Console.WriteLine(string.Join(" ", arrSum));
Алтернативен вариант със списък:
 
        List<int> nums = Console.ReadLine().Split().Select(int.Parse).ToList();
        int k = int.Parse(Console.ReadLine());
        List<int> sumArr = new List<int>();
        for (int i = 0; i < nums.Count; i++) sumArr.Add(0);
        while (k > 0)
        {
            int temp = nums[nums.Count - 1];
            nums.RemoveAt(nums.Count - 1);
            nums.Insert(0, temp);
            for (int i = 0; i < nums.Count; i++) sumArr[i] += nums[i];
            k--;
        }
        Console.WriteLine(string.Join(" ", sumArr));
Според мен е свързано с присвояването на един масив върху друг. Като го присвояваш ти казваш просто, че нъмс започва да сочи към паметта, където ротейтед е пазило данните си. След това инициализираш ротейтед и той започва да сочи към ново място. С всяко инициализиране той се изчиства и се декларира нов чист.
Реално не е добра практика, според мен, аз бих до направил с някакво copy и след това clear на rotated.
Не съм 100% сигурен, че отговорът ми е релевантен, а и няма как да тествам идейте си, защото , поради някаква причина е заключен джъджа...
Не е заключен. Преди малко събмитнах решението. Иначе темата я обсъждахме преди месец. Сега само добавих алтернативно решение.

То може, ама пак не разбирам защо трябва да инициализирам още веднъж в цикъла, ако вече съм го направил извън него. nums също се ползва само в цикъла, но е инициализиран извън него.
Ти ли си писал този код. Ако не си, разбирам но не съвсем защо не схващаш. Няма смисъл от двете инициализации. По-горе съм ти показал как да го направиш.
Аз съм го писал и зададох конкретен въпрос.