تحديات برمجيةالتحدي الخامس - حل التمرين الثالث بلغة 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");
}
}
#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