Advertisement
KechevD

Assessment of practical C-language skills Task3

Nov 25th, 2021
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int* arr;
  5. int capacity = 1, size = 0;
  6.  
  7. void swap(int *xp, int *yp) {
  8. int temp = *xp;
  9. *xp = *yp;
  10. *yp = temp;
  11. }
  12.  
  13. void push (int newElement) {
  14. if (capacity == size) {
  15. capacity *= 2;
  16. int* newArr = (int*)malloc(capacity * sizeof(int));
  17. for (int i = 0 ; i < size ; i ++)
  18. newArr [i] = arr [i];
  19. newArr [size ++] = newElement;
  20. free(arr);
  21. arr = newArr;
  22. } else {
  23. arr [size ++] = newElement;
  24. }
  25. }
  26.  
  27. int main(void) {
  28. arr = (int*)malloc(capacity * sizeof(int));
  29. int number;
  30. scanf("%d", &number);
  31. push(number);
  32. while(1) {
  33. scanf("%*c");
  34. scanf("%d", &number);
  35. if (number < 0) break;
  36. push(number);
  37. }
  38. int i, j;
  39. for (i = 0 ; i < size - 1 ; i ++)
  40. for (j = 0 ; j < size - i - 1; j ++)
  41. if (arr [j] > arr [j + 1])
  42. swap(&arr [j], &arr [j + 1]);
  43. for (i = 0 ; i < size ; i ++) {
  44. printf("%d", arr[i]);
  45. if (i == size - 1) printf ("\n");
  46. else printf (",");
  47. }
  48. free(arr);
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement