Професионална програма
Loading...
ivandm5 avatar ivandm5 17 Точки

Arrays - Exercises 02 Rotate and Sum

Здравейте, пробвам се да реша задачата с ротация и сумиране, но след 1 часово пробване стигнах до тук.
Въвеждам масива и числото, обръщам масива както е дадено в условието, но след това си задавам въпросите как да го обърна втори път и как да го сумирам като пробвам от 1 час разни кодове гледам и от нета примерни, но не ми се получава.
 

using System;
using System.Linq;

class LargestCommonEnd
{

   static string[] shiftRight(string[] arr)
	{
		 

		 
	 
     
		string[] demo = new string[arr.Length];
		string[] sum = new string[arr.Length];
		int k = int.Parse(Console.ReadLine());
		for (int j = 1; j <= k; j++)
		{

		
		for (int i = 1; i < arr.Length; i++)
		{
 
				demo[i] = arr[i - 1];
 
			}
			Console.WriteLine(string.Join(" ", demo));
			}
		//const int n = 5;

		//int[] a = new int[n] { 10, 20, 30, 40, 50 };
		//int[] b = new int[n] { 5, 4, 3, 2, 1 };
		//int[] arr = new int[n];
 


			 
					 
				 
				 
		 
			 
			 

	 
 		 

			 

 
	 
		demo[0] = arr[demo.Length - 1];
		 	 
		return demo;
		 
			
	

 
		 

		 
	}
	//public static string sum(string[] x)
	//{
	//	int k = int.Parse(Console.ReadLine());
	//	string sum = 0;
	//	for (int i = 0; i < demo.length; i++)
	//	{
	//		sum += x[i];
	//	}
	//	return sum;
	//}
 

	
	
	
	
	 

	static void Main(string[] args)
	{
		string[] wordsFirst = Console.ReadLine().Split(' ').ToArray();
	 
		//int countLeftRight = 0;
		//int countRightLeft = 0;
		//for (int i = 0; i < wordsFirst.Length && i < wordsSecond.Length; i++)
		//{

		//}
		//for (int j = 0; j < wordsFirst.Length && j < wordsSecond.Length; j++)
		//{

		//}
		 
			shiftRight(wordsFirst);
			 
		 
		 
	 
	}
}

 

Тагове:
0
Programming Fundamentals
a.aleksandrov91 avatar a.aleksandrov91 51 Точки

Здравей, разгледах твоето решение. Не ти завърта масива повече от един път, защото вземаш последната променлива от масив "arr", която не се променя. В цикъла ти присвояваш стойности на масива "demo" от масива "arr", но никъде не се разменят индексите им, освен на първия и последният елемент. Надявам се да си разбрал обяснението ми. Пускам ти един код за завъртане на масива, за да ти се изясни какво имах в предвид. :)

http://pastebin.com/JgzAvPcg

0
ivandm5 avatar ivandm5 17 Точки

 nums[0] = temp;
Това накрая не разбирам какво прави точно.
 

 

0
a.aleksandrov91 avatar a.aleksandrov91 51 Точки

Първо на променливата temp се присвоява стойноста на последният индекс от масива. След като приключи вторият цикъл имаме един масив със стойности без последната, като стойноста в клетка [0] и [1] е една и съща. За това след това на клетка [0] присвояваме вече запазената стойност от последната клетка.

0