Advertisement
MAT4m

Untitled

Jan 13th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void print(int a[], int size);
  5. void fill(int a[], int size);
  6. void sort(int orig[], int *asc[], int n);
  7. void printAdd(int a[], int size);
  8.  
  9.  
  10. int main(){
  11. int n;
  12. int *original = NULL;
  13. int **ascend = NULL;
  14.  
  15. printf("Enter the number of elements in the array: ");
  16. scanf("%d", &n);
  17.  
  18. original = (int *) calloc(n, sizeof(int *));
  19. ascend = (int **) calloc(n, sizeof(int *));
  20.  
  21. fill(original, n);
  22.  
  23. printf("Here is your original array");
  24. print(original, n);
  25. printAdd(original, n);
  26. sort(original, ascend, n);
  27. printf("Here is your ascending array");
  28. print(*ascend, n);
  29. printAdd(*ascend, n);
  30. printf("Here is your original array");
  31. print(original, n);
  32. printAdd(original, n);
  33.  
  34.  
  35. return 0;
  36. }
  37.  
  38.  
  39. void sort(int orig[], int **asc, int n){ //sort function
  40. int x;
  41. for(x = 0; x < n; x++){
  42. asc[x] = &orig[x];
  43. }
  44.  
  45. int i, j;
  46. for (i=0; i<n-1; i++) {
  47. for (j=0; j<n-1; j++)
  48. if (*asc[j+1] < *asc[j]) { /* compare the two neighbors */
  49. printf("Swap %d with %d\n", *asc[j+1], *asc[j]);
  50. int *tempPtr = asc[j];
  51. asc[j] = asc[j+1];
  52. asc[j+1] = tempPtr;
  53. }
  54. }
  55. }
  56.  
  57. void print(int a[], int size){ //prints an array
  58. int x;
  59. printf("{ ");
  60. for(x = 0; x < size; x++){
  61. printf("%d ", *(a + x));
  62. }
  63. printf("} \n");
  64. }
  65.  
  66. void printAdd(int a[], int size){ //prints addresses
  67. int x;
  68. printf("{ ");
  69. for(x = 0; x < size; x++){
  70. printf("%p ", (a + x));
  71. }
  72. printf("} \n");
  73. }
  74.  
  75. void fill(int a[], int size){ //gets values from user
  76. int x;
  77. int temp;
  78. printf("Enter the values delimited by spaces: \n");
  79. for(x = 0; x < size; x++){
  80. scanf("%d", &temp);
  81. a[x] = temp;
  82. }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement