StudentSeng

Very Funny But Not Breaking Any Rules :>

Oct 6th, 2022 (edited)
988
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.25 KB | Source Code | 0 0
  1. #include <stdio.h>
  2.  
  3. void count(int num, int *zeros, int *ones, int *twos, int *threes, int *fours, int *fives, int *sixes, int *sevens, int *eights, int *nines);
  4. void printTimes(char c, int times);
  5. int largest();
  6.  
  7. int main() {
  8.     largest();
  9. }
  10.  
  11. void count(int num, int *zeros, int *ones, int *twos, int *threes, int *fours, int *fives, int *sixes, int *sevens, int *eights, int *nines){
  12.     // Counts the occurances of each digits without an explicit loop
  13.     if (num == 0)
  14.         return;
  15.  
  16.     int last = num % 10;
  17.     int remain = num / 10;
  18.     printf("Last: %d\n", last);
  19.     if (last == 0) (*zeros)++;
  20.     else if (last == 1) (*ones)++;
  21.     else if (last == 2) (*twos)++;
  22.     else if (last == 3) (*threes)++;
  23.     else if (last == 4) (*fours)++;
  24.     else if (last == 5) (*fives)++;
  25.     else if (last == 6) (*sixes)++;
  26.     else if (last == 7) (*sevens)++;
  27.     else if (last == 8) (*eights)++;
  28.     else (*nines)++;
  29.  
  30.     count(remain, zeros, ones, twos, threes, fours, fives, sixes, sevens, eights, nines);
  31. }
  32.  
  33. void printTimes(char c, int times) {
  34.     // Prints char `c` on the same line `times` times
  35.     if (times == 0)
  36.         return;
  37.     printf("%c", c);
  38.     printTimes(c, times-1);
  39. }
  40.  
  41. int largest(){
  42.     int num;
  43.     int zeros, ones, twos, threes, fours, fives, sixes, sevens, eights, nines;
  44.     zeros = ones = twos = threes = fours = fives = sixes = sevens = eights = nines = 0;
  45.    
  46.     scanf("%d", &num);
  47.    
  48.     count(num<0?-num:num, &zeros, &ones, &twos, &threes, &fours, &fives, &sixes, &sevens, &eights, &nines);
  49.    
  50.     if (num >= 0) {
  51.         printTimes('9', nines);
  52.         printTimes('8', eights);
  53.         printTimes('7', sevens);
  54.         printTimes('6', sixes);
  55.         printTimes('5', fives);
  56.         printTimes('4', fours);
  57.         printTimes('3', threes);
  58.         printTimes('2', twos);
  59.         printTimes('1', ones);
  60.         printTimes('0', zeros);
  61.     }
  62.     else {
  63.         printf("-");
  64.         printTimes('1', ones);
  65.         printTimes('2', twos);
  66.         printTimes('3', threes);
  67.         printTimes('4', fours);
  68.         printTimes('5', fives);
  69.         printTimes('6', sixes);
  70.         printTimes('7', sevens);
  71.         printTimes('8', eights);
  72.         printTimes('9', nines);
  73.     }
  74.     putchar('\n');
  75. }
Advertisement
Add Comment
Please, Sign In to add comment