НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ
“КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ
імені ІГОРЯ СІКОРСЬКОГО”
ЗВІТ
з лабораторної роботи №6
з навчальної дисципліни “Програмування складних алгоритмів”
Варіант №3
Тема: Розріджені матриці
Завдання до лабораторної:
Розробити спосіб економного зберігання в пам’яті розріджених матриць
Виконати індивідуальне завдання над стисненою матрицею.
Вивести матрицю до та після обробки у стисненому та розгорнутому вигляді
Індивідуальне завдання 3 варіанту:
/
Результати програми:
/
Посилання:
https://replit.com/join/upwmkdauam-tr-15-sliusarch
Код програми:
#include <stdio.h>
#define n 5
int main(void) {
int a, b, c;
a = 0;
int arr[n][n] = {{0, 7, 4, 0, 0}, {2, 0, 0, 0, 0}, {2, 0, 4, 0, 0}, {0, 0, 5, 1, 0}, {0, 3, 0, 0, 7}};
printf("Start matrix: ");
for (int i = 0; i < n; i++) {
puts("");
for (int j = 0; j < n; j++) {
if(arr[i][j] != 0) {
a++;
}
printf("%d \t", arr[i][j]);
}
}
printf("\n\nKількість ненульових елементів = %d", a);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (arr[i][j] != 0) {
printf("\nВ %d рядку в %d стовбці '%d'", i+1, j+1, arr[i][j]);
}
}
}
for (int k = 0; k < n; k++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i % 2 == 0) {
if (j > 0) {
if(arr[i][j] < arr[i][j-1]) {
b = arr[i][j];
arr[i][j] = arr[i][j-1];
arr[i][j-1] = b;
}
}
}
}
}
}
printf("\n\nSorted matrix");
for (int i = 0; i < n; i++) {
puts("");
for (int j = 0; j < n; j++) {
printf("%d \t", arr[i][j]);
}
}
return 0;
}