Advertisement
MilaDimitrovaa

zad 4

Jul 9th, 2021
1,069
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.64 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. Write a presence\n");
  44.         printf("2. Write an absence\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("Student number: ");
  52.             scanf("%d", &n);
  53.             setBit(&prisustviq, n);
  54.  
  55.              if(n >= 32){
  56.         printf("Invalid student number!\n");
  57.     }
  58.         }
  59.  
  60.         else if (option == 2)
  61.         {
  62.             int n;
  63.             printf("Student number: ");
  64.             scanf("%d", &n);
  65.             eraseBit(&prisustviq, n);
  66.  
  67.              if(n >= 32){
  68.         printf("Invalid student number!\n");
  69.     }
  70.         }
  71.         else if (option == 3)
  72.         {
  73.             printf("Number of attendance: %d\n", onesCount(prisustviq));
  74.             printf("Number of absences: %d\n", zerosCount(prisustviq));
  75.         }
  76.         else if (option == 4)
  77.         {
  78.             break;
  79.         }else
  80.         {
  81.             printf("Invalid option\n");
  82.         }
  83.     }
  84.     return 0;
  85. }
  86.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement