المطلوب
أكتب برنامج يعرّف مصفوفة مربعة إسمها matrix تتألف من 3 أسطر و 3 أعمدة.
ثم يطلب من المستخدم إدخال قيم لها.
إنتبه: نريد هذه المصفوفة أن تحتوي فقط على قيم أكبر أو تساوي صفر.
ثم يعرض للمستخدم جميع القيم التي أصبحت تحتويها المصفوفة.
بعدها يقوم بجمع قيم جميع العناصر الموجودة على القطر ( On Diagonal ), فوق القطر ( Above Diagonal ), و تحت القطر ( Under Diagonal ).
في الأخير يعرض للمستخدم ناتج الجمع.
الحل بلغة C
#include <stdio.h>
void main() {
int rows = 3;
int cols = 3;
int matrix[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++)
{
printf("Enter matrix[%d][%d]: ", i, j);
scanf("%d", &matrix[i][j]);
}
}
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];
}
}
}
printf("\nNumber of elements above diagonals: %d", sumAboveDiagonals);
printf("\nNumber of elements under diagonals: %d", sumUnderDiagonals);
printf("\nNumber of elements on diagonals: %d", sumOnDiagonals);
}
سنحصل على النتيجة التالية في حال تم إدخال نفس القيم التي تم تعليمها باللون الأصفر عند التشغيل.
Enter matrix[0][0]: 1
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
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


محرر الويب
نظام الألوان
محول الوحدات
محلل عناوين الشبكات