fork download
  1. #include <stdio.h>
  2. #include <inttypes.h>
  3.  
  4.  
  5.  
  6. void draw_bargraph(uint8_t n)
  7. {
  8. printf("BG: = ");
  9. for (uint8_t i = 0; i < n; ++i)
  10. printf("#");
  11. printf("\n");
  12. }
  13.  
  14.  
  15.  
  16. void set_bargraph(uint8_t num_of_segments)
  17. {
  18. static uint8_t segments_on_display = 99;
  19. if (num_of_segments != segments_on_display)
  20. {
  21. draw_bargraph(num_of_segments);
  22. segments_on_display = num_of_segments;
  23. }
  24. }
  25.  
  26.  
  27. void display_value(uint8_t x)
  28. {
  29. printf("x= %d\n", x);
  30. set_bargraph(x/5);
  31. }
  32.  
  33.  
  34. int main(void)
  35. {
  36. for (uint8_t x = 0; x < 50; ++x)
  37. display_value(x);
  38.  
  39. for (uint8_t x = 50; x > 0; --x)
  40. display_value(x);
  41. return 0;
  42. }
  43.  
Success #stdin #stdout 0s 2008KB
stdin
Standard input is empty
stdout
x= 0
BG: = 
x= 1
x= 2
x= 3
x= 4
x= 5
BG: = #
x= 6
x= 7
x= 8
x= 9
x= 10
BG: = ##
x= 11
x= 12
x= 13
x= 14
x= 15
BG: = ###
x= 16
x= 17
x= 18
x= 19
x= 20
BG: = ####
x= 21
x= 22
x= 23
x= 24
x= 25
BG: = #####
x= 26
x= 27
x= 28
x= 29
x= 30
BG: = ######
x= 31
x= 32
x= 33
x= 34
x= 35
BG: = #######
x= 36
x= 37
x= 38
x= 39
x= 40
BG: = ########
x= 41
x= 42
x= 43
x= 44
x= 45
BG: = #########
x= 46
x= 47
x= 48
x= 49
x= 50
BG: = ##########
x= 49
BG: = #########
x= 48
x= 47
x= 46
x= 45
x= 44
BG: = ########
x= 43
x= 42
x= 41
x= 40
x= 39
BG: = #######
x= 38
x= 37
x= 36
x= 35
x= 34
BG: = ######
x= 33
x= 32
x= 31
x= 30
x= 29
BG: = #####
x= 28
x= 27
x= 26
x= 25
x= 24
BG: = ####
x= 23
x= 22
x= 21
x= 20
x= 19
BG: = ###
x= 18
x= 17
x= 16
x= 15
x= 14
BG: = ##
x= 13
x= 12
x= 11
x= 10
x= 9
BG: = #
x= 8
x= 7
x= 6
x= 5
x= 4
BG: = 
x= 3
x= 2
x= 1