Advertisement
Guest User

Untitled

a guest
Jan 10th, 2020
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.75 KB | None | 0 0
  1. #include <stdbool.h>
  2. #include <stdio.h>
  3.  
  4. struct Numbers {
  5.     int a;
  6.     int b;
  7. };
  8.  
  9. bool checkStructSize(struct Numbers numbs, int count) {
  10.     if (sizeof(numbs) == sizeof(int) * count)
  11.         return true;
  12.     return false;
  13. }
  14.  
  15. int getMax(struct Numbers numbs, int count) {
  16.     int max = ((int *)&numbs)[0];
  17.  
  18.     for (int i = 1; i < count; i++) {
  19.         if (max < ((int *)&numbs)[i])
  20.             max = ((int *)&numbs)[i];
  21.     }
  22.  
  23.     return max;
  24. }
  25.  
  26. int getMin(struct Numbers numbs, int count) {
  27.     int min = ((int *)&numbs)[0];
  28.  
  29.     for (int i = 1; i < count; i++) {
  30.         if (min > ((int *)&numbs)[i])
  31.             min = ((int *)&numbs)[i];
  32.     }
  33.  
  34.     return min;
  35. }
  36.  
  37. bool isEqual(struct Numbers numbs, int count) {
  38.     if (count == 1)
  39.         return false;
  40.  
  41.     for (int i = 0; i < count - 1; i++) {
  42.         if (((int *)&numbs)[i] != ((int *)&numbs)[i + 1])
  43.             return false;
  44.     }
  45.  
  46.     return true;
  47. }
  48.  
  49. void compareNumbers(struct Numbers numbs, int count) {
  50.     if (!checkStructSize(numbs, count)) {
  51.         printf("numbers count or structure is bad\n");
  52.         return;
  53.     }
  54.  
  55.     if (isEqual(numbs, count))
  56.         printf("all numbers is equal\n");
  57.     else
  58.         printf("%d is max, %d is min\n",
  59.             getMax(numbs, count),
  60.             getMin(numbs, count));
  61. }
  62.  
  63. void enterNumbers(struct Numbers *numbs, int count) {
  64.     if (!checkStructSize(*numbs, count)) {
  65.         printf("numbers count or structure is bad\n");
  66.         return;
  67.     }
  68.  
  69.     for (int i = 0; i < count; i++) {
  70.         printf("enter %d value:> ", i + 1);
  71.         scanf("%d", &((int *)numbs)[i]);
  72.     }
  73. }
  74.  
  75. int main() {
  76.     struct Numbers numbs = {0};
  77.     enterNumbers(&numbs, 2);
  78.     compareNumbers(numbs, 2);
  79.  
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement