تحدي المراجعة رقم 2
جزء من قسم الأساسيات في رحلة C على Coddy. الدرس 60 من 63.
التحدي
سهللِنختبر مهاراتك في التعامل مع المصفوفات في C!
أنشئ برنامجًا يُجري عمليات على مصفوفة ثنائية الأبعاد (مصفوفة):
- أنشئ دالة
rotateMatrixبحيث:- تأخذ المصفوفة الأصلية، ومصفوفة ثانية لملئها بالنتيجة المُدارة، والحجم
- تُدير المصفوفة بزاوية 90 درجة باتجاه عقارب الساعة
استخدم هذا لتدوير المصفوفة:rotated[j][size-1-i] = original[i][j]; - تكتب النتيجة في المصفوفة الثانية (تُرجع الدالة
void؛ وتطبعها الدالةmainالمُعطاة نيابةً عنك)
- أنشئ دالة
findElementبحيث:- تأخذ مصفوفة أعداد صحيحة ثنائية الأبعاد، وحجمها، وقيمة مستهدفة
- تُرجع 1 إذا تم العثور على القيمة المستهدفة في المصفوفة، و0 خلاف ذلك
جرّب بنفسك
#include <stdio.h>
void rotateMatrix(int original[][10], int rotated[][10], int size);
int findElement(int matrix[][10], int size, int target);
void rotateMatrix(int original[][10], int rotated[][10], int size) {
// ضع كودك هنا
}
int findElement(int matrix[][10], int size, int target) {
// ضع كودك هنا
}
// لا تعدّل الكود أدناه
int main() {
int size;
scanf("%d", &size);
int matrix[10][10];
int rotated[10][10];
int value = 1;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
matrix[i][j] = value++;
}
}
printf("Original Matrix:\n");
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
rotateMatrix(matrix, rotated, size);
printf("Rotated Matrix:\n");
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
printf("%d ", rotated[i][j]);
}
printf("\n");
}
printf("\n");
int result = findElement(matrix, size, 10);
if (result) {
printf("Found\n");
} else {
printf("Not found\n");
}
return 0;
}
جميع دروس الأساسيات
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة3المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعةتدرّب بنفسك: مترجم C عبر الإنترنت