Advertisement
TsetsoP

za den 4 neshto

Jul 8th, 2021
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void setBit(int* mask, int n)
  5. {
  6. *mask |= (1 << n);
  7. }
  8.  
  9. void eraseBit(int* mask, int n)
  10. {
  11. *mask &= ~(1 << n);
  12. }
  13.  
  14. int isSet(int mask, int n)
  15. {
  16. return mask & (1 << n);
  17. }
  18.  
  19. int onesCount(int mask)
  20. {
  21. int count = 0;
  22. for (int i = 0; i < sizeof(int) * 8; i++)
  23. {
  24. if (isSet(mask, i))
  25. {
  26. count++;
  27. }
  28. }
  29. return count;
  30. }
  31.  
  32. int zerosCount(int mask)
  33. {
  34. return sizeof(int) * 8 - onesCount(mask);
  35. }
  36.  
  37. int main()
  38. {
  39. int prisustviq = 0;
  40. int option;
  41. while (1)
  42. {
  43. printf("1. Napishi prisustvie\n");
  44. printf("2. Napishi otsustvie\n");
  45. printf("3. Information\n");
  46. printf("4. Exit\n");
  47. scanf("%d", &option);
  48. if (option == 1)
  49. {
  50. int n;
  51. printf("Nomer na uchenik: ");
  52. scanf("%d", &n);
  53. setBit(&prisustviq, n);
  54. }
  55. else if (option == 2)
  56. {
  57. int n;
  58. printf("Nomer na uchenik: ");
  59. scanf("%d", &n);
  60. eraseBit(&prisustviq, n);
  61. }
  62. else if (option == 3)
  63. {
  64. printf("Broi prisustviq: %d\n", onesCount(prisustviq));
  65. printf("Broi otsustviq: %d\n", zerosCount(prisustviq));
  66. }
  67. else if (option == 4)
  68. {
  69. break;
  70. }
  71. }
  72. return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement