Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <conio.h>
- #define SIZE 256 //константа с размер 256
- void Info()
- {
- printf("Da se sustavi programa za obrabotka na 2 masiva A[N][N] i B[N][N], \nkadeto dannite sa celi chisla v intervala [-1000;1000].");
- printf("Programata da izvurshi slednite deistviq:\n");
- printf("a) Da se obrazuva ednomeren masiv C[N], elementite na koito da se \nobrazuvat kato suma po suotvetnite glavni diagonali na A i B\n");
- printf("b) Polucheniqt masiv da se sortira po golemina.\n");
- printf("Author : Ivan Ivanov\n");
- printf("Fakulteten nomer: 081 217 018, MTF, DIT, grupa 17\n\n");
- }
- void BubbleSort(int *arr, size_t size)
- {
- if (!arr || size == 0) //ако масиват е празен се връщаме в main()
- return;
- int swap = 1;
- while (swap)//докато има елементи за размяна
- {
- swap = 0;
- for (size_t i = 0; i < size - 1; i++)
- {
- if (arr[i] > arr[i + 1]) //ако следващият елемент е по-малък от текущия, разменя местата им
- {
- int temp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = temp;
- swap = 1;
- }
- }
- }
- printf("The sorting is succesful.\n");
- }
- void EnterElementsInMatrix(int arr[SIZE][SIZE], size_t n) //Подаваме матрицата в която ще записваме елементи
- {
- int num = 0;
- for (size_t i = 0; i < n; i++)
- {
- for (size_t j = 0; j < n; j++)
- {
- printf("arr[%d][%d] = ", i, j);
- scanf("%d", &num);
- while (num < -1000 || num > 1000) //докато числото не е в дадения интервал ни кара да го въвеждаме наново
- {
- printf("Enter new number [-1000;1000] !!!\n");
- printf("arr[%d][%d] = ", i, j);
- scanf("%d", &num);
- }
- arr[i][j] = num; //записваме числото на дадената позиция
- }
- }
- }
- void PrintMatrix(int matrix[SIZE][SIZE], size_t n) //Принтира матрицата на конзолата
- {
- printf("\n");
- for (size_t i = 0; i < n; i++)
- {
- for (size_t j = 0; j < n; j++)
- {
- printf("%d ", matrix[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- }
- int main()
- {
- Info(); //принтираме условието на екрана
- int n;
- printf("Enter n: ");
- scanf("%d", &n);
- while (n < 0 || n > SIZE)
- {
- printf("Enter n in between 1 and 256: ");
- scanf("%d", &n);
- }
- int a[SIZE][SIZE]; //създаваме матрица А с размер SIZE*SIZE (256 на 256)
- int b[SIZE][SIZE];
- int result[SIZE]; //създаваме резултатния масив
- printf("Enter the elements for array A:\n");
- EnterElementsInMatrix(a, n);
- PrintMatrix(a, n); //извикваме функцията и тя принтира матрица А на конзолата
- printf("Enter the elements for array B:\n");
- EnterElementsInMatrix(b, n);
- PrintMatrix(b, n); //принтира матрица B на конзолата
- for (size_t i = 0; i < n; i++)
- {
- result[i] = a[i][i] + b[i][i];//събираме елементите от главните диагонали и ги записваме резултантният масив
- }
- printf("Before sorting:\n");
- for (size_t i = 0; i < n; i++) //притира масива на конзолата преди сортиране
- {
- printf("%d ", result[i]);
- }
- BubbleSort(result, n); // сортираме масива в нарастващ ред
- for (size_t i = 0; i < n; i++) //притира масива на конзолата
- {
- printf("%d ", result[i]);
- }
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement