Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

#include <stdio.

h>
#include <stdlib.h>

// Funkcja do sortowania wiersza nierosnąco


void sort_row_descending(double *row, int length) {
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - 1 - i; j++) {
if (row[j] < row[j + 1]) {
// Zamiana miejscami
double temp = row[j];
row[j] = row[j + 1];
row[j + 1] = temp;
}
}
}
}

// Funkcja do wczytywania wiersza


void read_row(double *row, int length) {
printf("Wprowadź %d liczb oddzielonych spacjami: ", length);
for (int i = 0; i < length; i++) {
scanf("%lf", &row[i]);
}
}

// Funkcja do wydruku wiersza


void print_row(double *row, int length) {
for (int i = 0; i < length; i++) {
printf("%.2f ", row[i]);
}
printf("\n");
}

int main() {
// Alokacja tablicy dynamicznej
double **matrix = (double **)malloc(3 * sizeof(double *));
if (matrix == NULL) {
printf("Błąd alokacji pamięci!\n");
return 1;
}

// Alokacja pamięci dla każdego wiersza


matrix[0] = (double *)malloc(3 * sizeof(double));
matrix[1] = (double *)malloc(5 * sizeof(double));
matrix[2] = (double *)malloc(6 * sizeof(double));

if (matrix[0] == NULL || matrix[1] == NULL || matrix[2] == NULL) {


printf("Błąd alokacji pamięci!\n");
return 1;
}

// Wczytywanie poszczególnych wierszy


for (int i = 0; i < 3; i++) {
if (i == 0) {
printf("Wprowadź pierwszy wiersz:\n");
read_row(matrix[i], 3);
} else if (i == 1) {
printf("Wprowadź drugi wiersz:\n");
read_row(matrix[i], 5);
} else {
printf("Wprowadź trzeci wiersz:\n");
read_row(matrix[i], 6);
}
}

// Wydrukowanie wczytanych wierszy


printf("\nWczytane wiersze:\n");
for (int i = 0; i < 3; i++) {
print_row(matrix[i], (i == 0 ? 3 : (i == 1 ? 5 : 6)));
}

// Sortowanie każdego wiersza nierosnąco


for (int i = 0; i < 3; i++) {
sort_row_descending(matrix[i], (i == 0 ? 3 : (i == 1 ? 5 : 6)));
}

// Wydrukowanie posortowanych wierszy


printf("\nPosortowane wiersze:\n");
for (int i = 0; i < 3; i++) {
print_row(matrix[i], (i == 0 ? 3 : (i == 1 ? 5 : 6)));
}

// Zwolnienie zaalokowanej pamięci


for (int i = 0; i < 3; i++) {
free(matrix[i]);
}
free(matrix);

return 0;
}

You might also like