שאלה בנושא מערך דו מימדי

הגדירו מערך דו מימדי בגודל 5\times 17.
כתוב פעולה המקבלת מטריצה ותבצע:

הכנסת ערכים מהמשתמש לשורה הראשונה.

הגרלת מספרים בין 0 ל- 50 לשורה השנייה.

מציבה לשורה השלישית את סכום שתי השורות הראשוניות לפי העמודות בהתאמה.

מציבה לשורה הרביעית את ריבועי השורה השלישית לפי העמודות בהתאמה.

עוברת על העמודות בשורה הרביעית: אם הערך בעמודה גדול מהערך שבעמודה הבאה תציב לעמודה בשורה החמישית 1, אחרת תציב 0.

אני ממש התקשיתי בתרגיל הזה ואשמח להסבר
תודה רבה

התוכנית בשפת C#:

public static void Main() {
	const int MATRIX_ROWS = 5;
	const int MATRIX_COLUMNS = 17;

	int[,] matrix = new int[MATRIX_ROWS, MATRIX_COLUMNS];
	
	// Fill first row with user's input
	for (int index = 0; index < MATRIX_COLUMNS; ++index) {
		matrix[0, index] = Int32.Parse(Console.ReadLine());
	}
	
	// Fill second row with random values
	Random random = new Random();
	for (int index = 0; index < MATRIX_COLUMNS; ++index) {
		matrix[1, index] = random.Next(0,51);
	}
	
	// Fill third row with the sum of first and second
	for (int index = 0; index < MATRIX_COLUMNS; ++index) {
		matrix[2, index] = matrix[0, index] + matrix[1, index];
	}

	// Fill fourth row with the third's row values squared
	for (int index = 0; index < MATRIX_COLUMNS; ++index) {
		matrix[3, index] = matrix[2, index] * matrix[2, index];
	}
	
	// Fill fifth row to be 1 if the value of the forth row is bigger than the next one, otherwise 0
	for (int index = 0; index < MATRIX_COLUMNS - 1; ++index) {
		matrix[4, index] = (matrix[3, index] > matrix[3, index + 1]) ? 1 : 0;
	}
	matrix[4, MATRIX_COLUMNS - 1] = 1;
	
	// Display matrix
	for (int i = 0; i < MATRIX_ROWS; i++) {
		for (int j = 0; j < MATRIX_COLUMNS; j++) {
			Console.Write(string.Format("{0} ", matrix[i, j]));
		}
		Console.Write(Environment.NewLine + Environment.NewLine);
	}
	Console.ReadLine();
}

בהתחלה, נאתחל מטריצה עם 5 שורות ו-17 עמודות. בלולאה הראשונה נמלא את השורה הראשונה עם המספרים של המשתמש. בלולאה השנייה נמלא את השורה השנייה עם מספרים אקראיים בין אפס לחמישים. בלולאה השלישית נמלא את השורה השלישית עם הסכום של שתי השורות הקודמות. בלולאה הרביעית נמלא את השורה הרביעית עם החזקה של הערכים של השורה השלישית. בלולאה החמישית נשים אחד אם הערך של השורה הנכוחית בשורה הרביעית גדול מהערך של התא הבא ואחרת אפס. שים לב כי בשורה הזאת אנחנו עוברים על 16 התאים האחרונים ובתא האחרון אני שם 1 כי לא הגדרת מה צריך להיות הערך שם (כי אין תא אחריו).
בלולאה האחרונה אני מדפיס את המטריצה.
מקווה שמובן, בהצלחה.