Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include "mergesort.h"
  5.  
  6. int int_comparator(const void *a, const void *b) {
  7. return *(int *) b - *(int *) a;
  8. }
  9.  
  10. int char_comparator(const void *a, const void *b) {
  11. return *(char *) b - *(char *) a;;
  12. }
  13.  
  14. //int str_comparator(const void *a, const void *b) {
  15. // return strcmp(a, b);
  16. // }
  17.  
  18. int main() {
  19. int elements;
  20. int element_size;
  21. scanf("%d%d", &elements, &element_size);
  22. void *array = malloc(sizeof(element_size) * elements);
  23. char argv[50];
  24. scanf("%c", &argv);
  25. if (strcmp(argv[0], "int") == 0) {
  26. int array[50];
  27. size_t i = 0;
  28. while (argv[i] != '0') {
  29. array[i] = atoi(argv[i + 1]);
  30. i++;
  31.  
  32. }
  33. mergesort(array, elements, element_size, int_comparator);
  34. for(int i=1; i < sizeof array/sizeof(int); i++){
  35. printf("%d",array[i]);
  36. }
  37.  
  38. printf("%d",array);
  39. }
  40. else if (strcmp(argv[0], "char") == 0) {
  41.  
  42. char *array[50];
  43. size_t i = 0;
  44. while (argv[i] != '0') {
  45. array[i] = argv[i + 1];
  46. i++;
  47. }
  48. mergesort(array, elements, element_size, char_comparator);
  49. for(int i=1; i < sizeof array/sizeof(char); i++){
  50. printf("%d",array[i]);
  51. }
  52. }
  53. else {
  54. char *array[50];
  55. size_t i = 0;
  56. while (argv[i] != '0') {
  57. array[i] = argv[i + 1];
  58. i++;
  59. }
  60. mergesort(array, elements, element_size, char_comparator);
  61. for(int i=1; i < sizeof array/sizeof(char); i++){
  62. printf("%d",array[i]);
  63. }
  64. }
  65. return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement