الخوارزميات و هياكل البيانات التحدي الخامس - حل التمرين الثالث بلغة C

المطلوب

أكتب برنامج يقوم بترتيب جميع القيم الموجودة في مصفوفة أرقام ثنائية جاهزة من الأصغر إلى الأكبر.
قم بعرض القيم الموجودة في المصفوفة قبل الترتيب و بعد الترتيب.


الحل بلغة C

#include <stdio.h>

void main() {
    
    int matrix[3][3] = {
        { 5, 2, 4 },
        { 1, 7, 3 },
        { 9, 8, 6 }
    };
    
    int rows = sizeof(matrix) / sizeof(matrix[0]);
    int cols = sizeof(matrix[0]) / (sizeof(int));
    
	int temp;
    int array[rows * cols];
    
    printf("Matrix before sorting\n");
    
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            array[j + (i * rows)] = matrix[i][j];
        }
    }
    
	for (int i = 0; i < (rows * cols) - 1; i++)
    {
        for (int j = i + 1; j < rows * cols; j++)
        {
            if (array[j] < array[i])
            {
                temp = array[j];
                array[j] = array[i];
                array[i] = temp;
            }
        }
    }
    
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            matrix[i][j] = array[j + (i * rows)];
        }
    }
    
 	printf("\nMatrix after sorting\n");
    
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    
}
		

سنحصل على النتيجة التالية عند التشغيل.

Matrix before sorting 
5 2 4 
1 7 3 
9 8 6 

Matrix after sorting 
1 2 3 
4 5 6 
7 8 9 
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة