Advertisement
vencinachev

Day3-Homework

Jul 8th, 2021
897
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 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. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement