Advertisement
semenrbt

2.1 static

Feb 18th, 2020
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.37 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define N 10
  6.  
  7. int main()
  8. {
  9.   int A[N] = {6, 1, 0, -5, 2, 1, -9, 8, 0, 0};
  10.   int B[N] = {0};
  11.  
  12.   printf("A[%d] = {", N); // Выводим на экран массив А
  13.   for(int k = 0; k < N; k++)
  14.       printf("%d, ", A[k]);
  15.   printf("};\n");
  16.  
  17.  
  18.   int m = 0, n = 0, b = 0; // Тут короч пробегаемся по массиву A, считаем кол-во элементов
  19.   for(int k = 0; k < N; k++)  // Которые меньше нуля, равны нулю, больше нуля
  20.   {                           // m - те, что меньше; n - те, что равны; b - те, что больше соответсвенно
  21.     if(A[k] < 0) m++;
  22.     else{
  23.       if(A[k] > 0) b++;
  24.       else{
  25.         if(A[k] == 0) n++;
  26.       }
  27.     }
  28.   }
  29.   int mk = m, nk = n, bk = b;
  30.   for(int k = 0; k < N; k++) // А теперь просто расставляем все элементы по координатам
  31.   {
  32.     if(A[k] < 0){
  33.       B[m - mk] = A[k];
  34.       mk--;
  35.     }
  36.     else
  37.     {
  38.       if(A[k] > 0)
  39.       {
  40.         B[m + n + (b - bk)] = A[k];
  41.         bk--;
  42.       }
  43.     }
  44.   }
  45.   printf("B[%d] = {", N); // Выводим результат и освобождаем память
  46.   for(int k = 0; k < N; k++)
  47.       printf("%d, ", B[k]);
  48.   printf("};\n");
  49.  
  50.   return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement