המשימה
שחלוף (Transpose) של מטריצה ריבועית = החלפת כל תא [i][j] עם התא [j][i].
כתוב פעולה שמקבלת מטריצה ריבועית ומשחלפת אותה **בתוך אותה מטריצה**,
בלי לבנות מטריצה חדשה. אחר כך הדפס אותה שורה-שורה, המספרים מופרדים
ברווח.
דוגמה:
לפני: אחרי:
1 2 3 1 4 7
4 5 6 2 5 8
7 8 9 3 6 9
הנחיות:
• הלולאה הפנימית מתחילה ב-j = i + 1, לא ב-0. חשוב על מה קורה אם היא
מתחילה ב-0 — כל זוג מוחלף פעמיים, והמטריצה חוזרת למצבה המקורי.
• האלכסון הראשי אינו זז.
• ההחלפה מצריכה משתנה עזר, בדיוק כמו החלפת שני משתנים רגילים.
```ds:table
{"title":"לפני","rows":[["1","2","3"],["4","5","6"],["7","8","9"]]}
```
```ds:table
{"title":"אחרי","rows":[["1","4","7"],["2","5","8"],["3","6","9"]]}
```
קוד הפתיחה
using System;
class Program {
static void Transpose(int[,] mat) {
// כתוב את הפתרון כאן — במקום, בלי מטריצה חדשה
}
static void Print(int[,] mat) {
for (int i = 0; i < mat.GetLength(0); i++) {
string line = "";
for (int j = 0; j < mat.GetLength(1); j++) {
line = line + mat[i, j] + " ";
}
Console.WriteLine(line.Trim());
}
}
static void Main() {
int[,] mat = { {1, 2, 3},
{4, 5, 6},
{7, 8, 9} };
Transpose(mat);
Print(mat); // 1 4 7 / 2 5 8 / 3 6 9
Console.WriteLine("---");
int[,] one = { {5} };
Transpose(one);
Print(one); // 5
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.