Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. Напишите программу, которая сортирует массив по возрастанию "методом камня": аналогично "методу пузырька", но в обратном порядке: самый "тяжелый" элемент из оставшихся спускается к концу массива.
  2.  
  3. Входные данные
  4. Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0< N ≤ 10000 .
  5.  
  6. Выходные данные
  7. Программа должна выводить весь массив после каждой перестановки элементов. Все элементы массива выводятся в одну строку и разделяются пробелами, после окончания вывода массива выполняется переход на новую строку. Если перестановок не было, программа выводит только число 0.
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <math.h>
  12.  
  13. void voido(int* A,int a,int b)
  14. {
  15.     int i,c,f,e,h,l,k=0;
  16.     for(c=0;c<a-1;c++)
  17.     {
  18.         e=A[0];
  19.         f=0;
  20.         for(i=1;i<a-c;i++)
  21.         {
  22.             if(e<A[i])
  23.             {
  24.                 e=A[i];
  25.                 f=i;
  26.             }
  27.         }
  28.         for(e=f;e<a-c-1;e++)
  29.         {
  30.             k=1;
  31.             h=A[e+1];
  32.             A[e+1]=A[e];
  33.             A[e]=h;
  34.             for(l=0;l<a;l++)
  35.             {
  36.                 printf("%d ",A[l]);
  37.             }
  38.             printf("\n");
  39.         }
  40.     }
  41.     if(k==0)
  42.         {
  43.             printf("0");
  44.         }
  45.     return ;
  46. }
  47.  
  48. int main(void)
  49. {
  50.     int a,i,b;
  51.     int* A;
  52.     scanf("%d ",&a);
  53.     A=(int *) malloc(a*sizeof(int));
  54.     for(i=0;i<a;i++)
  55.     {
  56.         scanf("%d ",&A[i]);
  57.     }
  58.     scanf("%d " ,&b);
  59.     voido(A,a,b);
  60.     free(A);
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement