המשימה
שחלוף (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"]]}
```
קוד הפתיחה
public class Main {
public static void transpose(int[][] mat) {
// כתוב את הפתרון כאן — במקום, בלי מטריצה חדשה
}
public static void print(int[][] mat) {
for (int i = 0; i < mat.length; i++) {
String line = "";
for (int j = 0; j < mat[i].length; j++) {
line = line + mat[i][j] + " ";
}
System.out.println(line.trim());
}
}
public static void main(String[] args) {
int[][] mat = { {1, 2, 3},
{4, 5, 6},
{7, 8, 9} };
transpose(mat);
print(mat); // 1 4 7 / 2 5 8 / 3 6 9
System.out.println("---");
int[][] one = { {5} };
transpose(one);
print(one); // 5
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.