Advertisement
kalin729

Valeri Kursova

Dec 5th, 2020 (edited)
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.77 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int i, j, n, temp;
  7.  
  8.     printf("Avtor: \n");
  9.     printf("FN: , grupa: , kurs: \n");
  10.     printf("Uslovie: Da se sustavi programa za obrabotka na dvumeren masiv A[N,N]\n");
  11.     printf("kudeto dannite sa celi chisla v intervala [-500][1000]\n");
  12.     printf("A) Da se obrazuva ednomeren masiv C[N]\n");
  13.     printf("elementite na kojto sa maksimalnite elementi ot vseki red na masiva A\n");
  14.     printf("B) polucheniq masiv da se sortira po golemina\n");
  15.     printf("Otpechatvane na poluchenite rezultati sled obrabotka A) i B)\n");
  16.  
  17.     printf("Broi redove i stulbove n=");
  18.     scanf("%d",&n);
  19.  
  20.     int A[n][n],C[n];
  21.  
  22.     /*
  23.     Въвеждане на данни в масива А[N][N] като N е въведено предварително (на 18 ред)
  24.     For циклите съответно се завъртат N брой пъти за да се попълни масива
  25.     В блока на Do се приемат стойности за да се запълни масива
  26.     В While се проверява, ако стойностите са в диапазона [-500;1000] и ако не са, цикъла се повтаря, докато не се получат желаните стойности
  27.     */
  28.     for(i=0;i<n;i++){
  29.       for(j=0;j<n;j++){
  30.             do{
  31.                 printf("A[%d][%d]=",i,j);
  32.                 scanf("%d", &A[i][j]);
  33.             }while (A[i][j]<-500 || A[i][j]>1000);
  34.         }
  35.     }
  36.  
  37.     printf("Izvejdane na masiva A: \n");
  38.     for(i=0;i<n;i++){
  39.         for (j=0;j<n;j++){
  40.             printf("| %d |",A[i][j]);
  41.         }
  42.         printf("\n");
  43.     }
  44.  
  45.     /*
  46.     Тук се обхожда масива отново, но на първото завъртане се създава променлива Max, която приема за стойност
  47.     първият елемент от масива А[N][N]. Във второто завъртане се прави проверка, дали текущият елемент е по-голям от променливата Max
  48.     и ако е по-голям, той става стойността на Max. По този начин се минава целият ред и в края на For цикъла се намира най-голямата стойност.
  49.     Преди завършване на завъртането на първия For циъкъл стойността на Max се присвоява от C[N] масива за текущият ред и на следващото завъртане
  50.     max отново е 0.
  51.     */
  52.     for (i=0;i<n;i++){
  53.         int max = A[i][0];
  54.         for (j=0;j<n;j++){
  55.             if (A[i][j]>max){
  56.                 max = A[i][j];
  57.             }
  58.         }
  59.         C[i]= max;
  60.     }
  61.     printf("Izvejdane na masiva C:\n");
  62.     for(i=0;i<n;i++){
  63.         printf("| %d |",C[i]);
  64.     }
  65.  
  66.     /*
  67.     Подреждане на масива С по големина, използвайки Bubble Sort(Метода на мехурчето)
  68.     В този метод, във вторият For число се проверява, дали е по-голямо от това след него
  69.     и ако е по-голямо, те си разменят стойностите. Това число минава през целият масив и
  70.     като стигне до края, то "изплува". Това се прави N брой пъти за да може целият масив да
  71.     бъде сортиран.
  72.     */
  73.     for (i=0;i<n-1;i++){
  74.         for (j=0;j<n-i-1;j++){
  75.             if (C[j]>C[j+1])
  76.             {
  77.                 temp= C[j];
  78.                 C[j]=C[j+1];
  79.                 C[j+1]=temp;
  80.             }
  81.         }
  82.  
  83.     }
  84.  
  85.     printf("\n");
  86.     printf("Masiva C podreden po golemina:\n");
  87.     for (i=0;i<n;i++){
  88.         printf("| %d |",C[i]);
  89.     }
  90.     printf("\n");
  91.  
  92.     return 0;
  93. }
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement