Advertisement
Savenok

KPO lab №2

Sep 19th, 2023
844
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.91 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <malloc.h>
  5.  
  6. void printMatrix(int arr[6][6]) {
  7.     for (int i = 0; i < 6; i++) {
  8.         for (int j = 0; j < 6; j++) {
  9.             printf("%d\t", arr[i][j]);
  10.         }
  11.         printf("\n");
  12.     }
  13.     printf("\n");
  14. }
  15.  
  16. void allocateMemory(int** array, int n) {
  17.     if (array == NULL) {
  18.         printf("Memory allocation failed!");
  19.         return -1;
  20.     }
  21.     for (int i = 0; i < n; i++) {
  22.         array[i] = (int*)malloc(n * sizeof(int));
  23.         if (array[i] == NULL) {
  24.             printf("Memory allocation failed!");
  25.             return -1;
  26.         }
  27.     }
  28. }
  29.  
  30. void fillArray(int** array, int n) {
  31.     for (int i = 0; i < n; i++) {
  32.         for (int j = 0; j < n; j++) {
  33.             array[i][j] = rand() % 201 - 100;
  34.         }
  35.     }
  36. }
  37.  
  38. int findFirstMin(int** array, int n) {
  39.     int min = array[0][1];
  40.     for (int i = 0; i < n; i++) {
  41.         for (int j = 0; j < n; j++) {
  42.             if ((((i + j < n - 1) && (i < j)) || ((i + j >= n) && (i > j))) && (array[i][j] < min)) {
  43.                 min = array[i][j];
  44.             }
  45.         }
  46.     }
  47.     return min;
  48. }
  49.  
  50. int findSecMin(int** array, int n) {
  51.     int min = array[0][1];
  52.     for (int i = 0; i < n; i++) {
  53.         for (int j = 0; j < n; j++) {
  54.             if ((i > j) && (i + j < n - 1) && (array[i][j] < min)) {
  55.                 min = array[i][j];
  56.             }
  57.         }
  58.     }
  59.     return min;
  60. }
  61.  
  62. void printArray(int** array, int n) {
  63.     for (int i = 0; i < n; i++) {
  64.         for (int j = 0; j < n; j++) {
  65.             printf("%d\t", array[i][j]);
  66.         }
  67.         printf("\n");
  68.     }
  69. }
  70.  
  71. void freeMemory(int** array, int n) {
  72.     for (int i = 0; i < n; i++) {
  73.         free(array[i]);
  74.     }
  75. }
  76.  
  77. int main() {
  78.     int n = 0;
  79.     int** array;
  80.     array = (int**)malloc(n * sizeof(int*));
  81.     srand(time(NULL));
  82.     printf("Input n:");
  83.     scanf_s("%d", &n);
  84.     allocateMemory(array, n);
  85.     fillArray(array, n);
  86.     printArray(array, n);
  87.     int min = findFirstMin(array, n);
  88.     printf("\nMin in  first task: \n");
  89.     printf("%d\n", min);
  90.     min = findSecMin(array, n);
  91.     printf("\nMin in  second task: \n");
  92.     printf("%d\n", min);
  93.     freeMemory(array, n);
  94.     return 0;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement