Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.76 KB | None | 0 0
  1. //#include <stdafx.h>
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdbool.h>
  6. #include<stdio.h>
  7. #include<math.h>
  8. #include<locale.h>
  9. #include<conio.h>
  10. #include<Windows.h>
  11.  
  12.  
  13. int W[12][15];
  14. int n;
  15. int P[12];
  16.  
  17. int positive_element_in_array(int n, int *b) {
  18.     int positiveElement = -1;
  19.     for (int i = n - 1; i >= 0; i--) {
  20.         if (b[i] > 0) {
  21.             positiveElement = b[i];
  22.             break;
  23.         }
  24.     }
  25.     return positiveElement;
  26. }
  27.  
  28. /* Функция ввода матрицы A(n*m) */
  29. void vvod(int m, int n) {
  30.     for (int i = 0; i < m; i++) {
  31.         for (int j = 0; j < n; j++)
  32.             scanf("%d", &W[i][j]);
  33.     }
  34. }
  35.  
  36. /*Функция вывода матрицы A(n*m) */
  37. void vyvod(int m, int n) {
  38.     printf("Inputting matrix: \n");
  39.     for (int i = 0; i < m; i++) {
  40.         for (int j = 0; j < n; j++)
  41.             printf("%5d ", W[i][j]);
  42.         printf("\n");
  43.     }
  44. }
  45.  
  46. /*задание 6*/
  47. void WP(int n, int m, int *index) {
  48.     printf("\npreob matrix:\n");
  49.     int W2[12][15];
  50.     for (int i = 0; i < m; i++) {
  51.         for (int j = 0; j < n; j++) {
  52.             W2[i][j] = W[index[i]][j];
  53.         }
  54.     }
  55.     for (int i = 0; i < m; i++) {
  56.         for (int j = 0; j < n; j++) {
  57.             printf("%d", W2[i][j], "%c", " ");
  58.         }
  59.         printf("\n");
  60.     }
  61.  
  62. }
  63.  
  64. void swap(int *a, int i, int j) {
  65.     int temp;
  66.     temp = a[i];
  67.     a[i] = a[j];
  68.     a[j] = temp;
  69. }
  70.  
  71. void sortP(int n, int m) {
  72.     int *index = (int *) malloc(sizeof(int) * n);
  73.  
  74.     for (int i = 0; i < n; i++) {
  75.         index[i] = i;
  76.     }
  77.     for (int i = 0; i < n; i++) {
  78.         int mink = i;
  79.         int minimum = P[i];
  80.         for (int j = i; j < n; j++) {
  81.  
  82.             if (P[j] < minimum) {
  83.                 minimum = P[j];
  84.                 mink = j;
  85.             }
  86.         }
  87.         swap(P, i, mink);
  88.         swap(index, i, mink);
  89.     }
  90.     for (int j = 0; j < n; j++)
  91.         printf("%d", P[j], "%c"," ");
  92.     printf("\n");
  93.     /*делает 6 задание тут же*/
  94.     WP(n, m, index);
  95. }
  96.  
  97. /* 4 задание*/
  98. void p(int m, int n) {
  99.     int n1 = n;
  100.     int *H1 = (int *) malloc(sizeof(int) * n);
  101.     for (int i = 0; i < m; i++) {
  102.         for (int j = 0; j < n; j++) {
  103.             H1[i] = W[i][j];
  104.         }
  105.         P[i] = positive_element_in_array(n, H1);
  106.     }
  107.     printf("\n4 task\n");
  108.     for (int j = 0; j < n; j++)
  109.         printf("%d", P[j]);
  110.     //printf("\n");
  111.     sortP(n, m);
  112. }
  113.  
  114. /* Главная программа */
  115. int main() {
  116.     setlocale(LC_ALL, "russian");
  117.     printf("\nmatrix \n");
  118.     int m, i, j;
  119.     float sra, srg;
  120.     scanf("%d",&m);
  121.     scanf("%d",&n);
  122.     printf("\ninput matrix:\n");
  123.     vvod(m, n);
  124.     vyvod(m, n);
  125.     p(m, n);
  126.  
  127.     system("pause");
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement