Advertisement
MikiStrail

Лаб покажувачи

Dec 20th, 2018
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.06 KB | None | 0 0
  1. 1. Збир на подниза
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #define MAX 100
  5.  
  6. int sumPos(int *a, int index);
  7.  
  8. int main(){
  9.     int a[MAX];
  10.     int n;
  11.     int i;
  12.  
  13.     scanf("%d", &n);
  14.  
  15.     for (i=0; i<n; i++){
  16.         scanf("%d", &a[i]);
  17.     }
  18.  
  19.     int index;
  20.  
  21.     scanf("%d", &index);
  22.  
  23.     if (index > n)
  24.         index = n;
  25.  
  26.     printf("%d", sumPos(a, index));
  27.  
  28.     return 0;
  29. }
  30.  
  31. int sumPos(int *a, int index){
  32.     int sum = 0;
  33.     int i;
  34.  
  35.     for(i=0; i<index; i++)
  36.         sum+= *(a+i);
  37.  
  38.     return sum;
  39. }
  40.  
  41. 2. Замена
  42. #include <stdio.h>
  43. #define MAX 100
  44.  
  45. // вашите функции овде
  46. int coprime(int a, int b);
  47. int gcd(int a , int b);
  48. void swap(int *a, int *b);
  49.  
  50. int main() {
  51.     int a[MAX];
  52.     int n;
  53.     scanf("%d", &n);
  54.     int i;
  55.     for(i = 0; i < n; i++) {
  56.         scanf("%d", &a[i]);
  57.     }
  58.    
  59.     // вашиот код почнува овде
  60.     for(i = 0; i < n-1; i++) {
  61.         if (coprime(a[i], a[i+1]) == 1){
  62.             swap(&a[i], &a[i+1]);
  63.             i++;
  64.         }
  65.     }
  66.    
  67.     // завршува овде
  68.    
  69.     for(i = 0; i < n; i++) {
  70.         printf("%d ", a[i]);
  71.     }
  72.     return 0;
  73. }
  74.  
  75.  
  76. void swap(int *a, int *b){
  77.    int t;
  78.  
  79.    t  = *b;
  80.    *b = *a;
  81.    *a = t;
  82. }
  83.  
  84.  
  85. int coprime(int a, int b){
  86.     int c;
  87.     while(a != 0){
  88.         c = a;
  89.         a = b%a;
  90.         b = c;
  91.     }
  92.     return b;
  93. }
  94.  
  95. 3. Сортирање
  96. #include <stdio.h>
  97. #define MAX 400
  98.  
  99.  
  100. void sort(int *a, int n) {
  101.     int i, j, tmp;
  102.  
  103.     for(i=0;i<n;i++)
  104.     {
  105.         for(j=i+1;j<n;j++)
  106.         {
  107.             if( *(a+i) > *(a+j))
  108.             {
  109.                 tmp = *(a+i);
  110.                 *(a+i) = *(a+j);
  111.                 *(a+j) = tmp;
  112.            }
  113.         }
  114.     }
  115. }
  116.  
  117. void merge(int *a, int *b, int *c, int n) {
  118.     int i = 0, j = 0, k = 0;
  119.  
  120.     while (i<n&&j<n)
  121.     {
  122.         if (a[i] < b[j])
  123.             c[k++] = a[i++];
  124.         else
  125.             c[k++] = b[j++];
  126.     }
  127.  
  128.     while (i < n)
  129.         c[k++] = a[i++];
  130.  
  131.     while (j < n)
  132.         c[k++] = b[j++];
  133. }
  134.  
  135. int main() {
  136.     int n;
  137.     int a[MAX];
  138.     int b[MAX];
  139.     int c[MAX];
  140.     scanf("%d", &n);
  141.     int i;
  142.     for(i = 0; i < n; ++i) {
  143.         scanf("%d", &a[i]);
  144.     }
  145.     for(i = 0; i < n; ++i) {
  146.         scanf("%d", &b[i]);
  147.     }
  148.     sort(a, n);
  149.     sort(b, n);
  150.     merge(a, b, c, n);
  151.     for(i = 0; i < 2 * n; ++i) {
  152.         printf("%d ", c[i]);
  153.     }
  154.     return 0;
  155. }
  156.  
  157.  
  158. 4. Напредно сортирање
  159. #include <stdio.h>
  160. #include <stdlib.h>
  161. #include <time.h>
  162.  
  163. void my_sort(int* xArray, int xSize)
  164. {
  165.         int lPivot = xArray[xSize-1];
  166.         int lIndexOfLargestElement = 0;
  167.         for (int i = 0; i < xSize-1; i++)
  168.         {
  169.                 if (xArray[i] < lPivot)
  170.                 {
  171.                         // Swap largest element with this
  172.                         int lTmp = xArray[i];
  173.                         xArray[i] = xArray[lIndexOfLargestElement];
  174.                         xArray[lIndexOfLargestElement]  = lTmp;
  175.                         lIndexOfLargestElement++;
  176.                 }
  177.         }
  178.         // swap pivot with xArray[lIndexOfLargestElement]
  179.         int lTmp = xArray[lIndexOfLargestElement];
  180.         xArray[lIndexOfLargestElement] = xArray[xSize-1];
  181.         xArray[xSize-1] = lTmp;
  182.         if (lIndexOfLargestElement > 1)
  183.                 my_sort(xArray, lIndexOfLargestElement);
  184.         if (xSize-lIndexOfLargestElement-1 > 1)
  185.                 my_sort(xArray+lIndexOfLargestElement+1, xSize-lIndexOfLargestElement-1);
  186. }
  187.  
  188. // не ја менувајте главната функција
  189. int main() {
  190.     int n, i;
  191.     scanf("%d", &n);
  192.     int *a = malloc(sizeof(int) * n);
  193.     srand(time(NULL));
  194.     for(i = 0; i < n; ++i) {
  195.         a[i] = rand() % 10000;
  196.     }
  197.  
  198.  
  199.     my_sort(a, n);
  200.  
  201.  
  202.     int sorted = 1;
  203.     for(i = 0; i < n - 1; ++i) {
  204.         if(a[i] > a[i + 1]) {
  205.             sorted = 0;
  206.             break;
  207.         }
  208.     }
  209.     if(!sorted) {
  210.         printf("NOT SORTED");
  211.     } else {
  212.         printf("SORTED");
  213.     }
  214.     free(a);
  215.     return 0;
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement