Advertisement
Lisaveta777

sort arr/ swap + extra

Oct 22nd, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.72 KB | None | 0 0
  1. #include <stdio.h>
  2. #define SIZE 10
  3.  
  4. //https://otvet.mail.ru/question/211049328
  5.  
  6. void sort_arr(int *,int);
  7. void print_arr(int *,int);
  8. void swap_elements(int *,int *);
  9. int  get_smallest(int *,int *,int);
  10.  
  11.  
  12. int main()
  13. {
  14.     int index ,arr1[SIZE] = {3,5,0,-3,1,2,5,4,3,5};
  15.     int arr2[SIZE] = {8,-3,18,2,3,4,33,4,2,5};
  16.  
  17.  
  18.     print_arr(arr1,SIZE);
  19.     print_arr(arr2,SIZE);
  20.     sort_arr(arr1,SIZE);
  21.     print_arr(arr1,SIZE);
  22.     sort_arr(arr2,SIZE);
  23.     print_arr(arr2,SIZE);
  24.     index = get_smallest(arr1,arr2,SIZE);
  25.     printf("smallest number in arr1, which doesnt coincide with number in arr2\n");
  26.     printf("is %d, and its index is %d\n",arr1[index],index);
  27.  
  28.     return 0;
  29. }
  30. void print_arr(int *a1,int s)
  31. {
  32.     int i;
  33.     for(i=0;i<s;i++)
  34.     {
  35.         printf("%d\t",a1[i]);
  36.     }
  37.     printf("\n");
  38. }
  39. void sort_arr(int *a1,int s)
  40. {
  41.     int i,j,t;
  42.     for(i=0;i<s-1;i++)
  43.     {
  44.         //printf("\ni is %d\n",i);
  45.         for(j=i+1;j<s;j++)
  46.         {
  47.            //printf("%d\t",j);
  48.  
  49.             if(a1[i] > a1[j])
  50.             {
  51.                 swap_elements(&a1[i],&a1[j]);
  52.                 // t = a1[i]; //without swap()
  53.                 //a1[i] = a1[j];
  54.                 //a1[j] = t;
  55.  
  56.             }
  57.         }
  58.  
  59.  
  60.  
  61.     }
  62. }
  63. void swap_elements(int *el1,int *el2)
  64. {
  65.     int temp= *el1;//value
  66.     *el1 =  *el2;
  67.     *el2 = temp;
  68.  
  69. }
  70. int get_smallest(int *a1,int *a2,int s)
  71. {
  72.     int i,j,result,flag;
  73.     for(i=0;i<s;i++)
  74.     {
  75.         flag = 0;
  76.         for(j=0;j<s;j++)
  77.         {
  78.             if(a1[i]==a2[j])
  79.             {
  80.                 flag =1;
  81.                 break;//exits for j
  82.             }
  83.  
  84.         }
  85.         if(flag ==0)
  86.             break;//exits for i
  87.     }
  88.     return i;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement