تحديات برمجيةالتحدي الخامس - حل التمرين الخامس بلغة جافا
المطلوب
أكتب برنامج يعرّف مصفوفة مربعة إسمها matrix
تتألف من 3 أسطر و 3 أعمدة.
ثم يطلب من المستخدم إدخال قيم لها.
إنتبه: نريد هذه المصفوفة أن تحتوي فقط على قيم أكبر أو تساوي صفر.
ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
بعدها يقوم بجمع قيم جميع العناصر الموجودة على القطر ( On Diagonal ), فوق القطر ( Above Diagonal ), و تحت القطر ( Under Diagonal ).
في الأخير يعرض للمستخدم ناتج الجمع.
الحل بلغة جافا
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int rows = 3; int cols = 3; int[][] matrix = new int[rows][cols]; int sumOnDiagonals = 0; int sumAboveDiagonals = 0; int sumUnderDiagonals = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { System.out.print("Enter matrix[" + i + "][" + j + "]: "); matrix[i][j] = input.nextInt(); } } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { if (j > i) { sumAboveDiagonals += matrix[i][j]; } else if (j < i) { sumUnderDiagonals += matrix[i][j]; } else { sumOnDiagonals += matrix[i][j]; } } } System.out.println("\nNumber of elements above diagonals: " + sumAboveDiagonals); System.out.println("Number of elements under diagonals: " + sumUnderDiagonals); System.out.println("Number of elements on diagonals: " + sumOnDiagonals); } }
سنحصل على النتيجة التالية في حال تم إدخال نفس القيم التي تم تعليمها باللون الأصفر عند التشغيل.
Enter matrix[0][1]: 2
Enter matrix[0][2]: 3
Enter matrix[1][0]: 4
Enter matrix[1][1]: 5
Enter matrix[1][2]: 6
Enter matrix[2][0]: 7
Enter matrix[2][1]: 8
Enter matrix[2][2]: 9
Sum of elements above diagonals: 11
Sum of elements under diagonals: 19
Sum of elements on diagonals: 15