fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5.  
  6. void revers(int *bin)
  7. {
  8. int temp, i;
  9. for (i = 0; i < 12 / 2; i++)
  10. {
  11. temp = bin[i];
  12. bin[i] = bin[12 - i - 1];
  13. bin[12 - i - 1] = temp;
  14. }
  15. }
  16.  
  17. int *binary_system(int number)
  18. {
  19. //int bin[12];
  20. int *bin = (int*) malloc(12*sizeof(int));
  21.  
  22.  
  23. for (int i = 0; i < 12; i++)
  24. {
  25. bin[i] = 0;
  26. }
  27. int i = 0;
  28. while (number != 0)
  29. {
  30. if (number % 2 == 0)
  31. {
  32. bin[i] = 0;
  33. number /= 2;
  34. }
  35. else
  36. {
  37. bin[i] = 1;
  38. number /= 2;
  39. }
  40. i++;
  41. }
  42. revers(bin);
  43. return bin;
  44. }
  45.  
  46. void printArr(int *arr){
  47. for(size_t i = 0; i < 12; i++)
  48. printf("%d ", arr[i]);
  49. printf("\n");
  50. }
  51.  
  52. void calculate_the_maximum(int n, int k)
  53. {
  54. int *nbin, *kbin;
  55. nbin = binary_system(n);
  56. kbin = binary_system(k);
  57.  
  58. //вывод
  59. printArr(nbin);
  60. printArr(kbin);
  61.  
  62. /* функция будет работать корректно,
  63.   * если вы будете контролировать процесс выделения памяти
  64.   * и своевременно её освобождать */
  65. free(nbin);
  66. free(kbin);
  67.  
  68. }
  69.  
  70.  
  71.  
  72. int main()
  73. {
  74. int n, k;
  75. scanf("%d %d", &n, &k);
  76. calculate_the_maximum(n, k);
  77. return 0;
  78. }
  79.  
  80.  
Success #stdin #stdout 0s 4296KB
stdin
55 1000
stdout
0 0 0 0 0 0 1 1 0 1 1 1 
0 0 1 1 1 1 1 0 1 0 0 0