fork download
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int i = 0, j = 0;
  6. int group = 0, left = 0, right = 0; // 그룹의 수가 층의 수가 된다.
  7. int width = 0, min_width = 0, add_width = 0, num_of_add_width = 0;
  8.  
  9. fputs("몇 줄에 출력할지 숫자 입력 : ", stdout);
  10. scanf("%d", &group);
  11. putc('\n', stdout);
  12.  
  13. left = 2;
  14. min_width = 8 / group;
  15. num_of_add_width = 8 % group;
  16.  
  17. for (i = 0; i < group * 9; i++)
  18. {
  19. add_width = (num_of_add_width * 9 > i ? 1 : 0);
  20. width = min_width + add_width;
  21. right = i % 9 + 1;
  22.  
  23. if (i != 0 && i % 9 == 0)
  24. putc('\n', stdout);
  25.  
  26. for (j = 0; j < width; j++)
  27. {
  28. printf("%d*%d=%3d ", left, right, left*right);
  29. left++;
  30. }
  31.  
  32. if (i % 9 != 8)
  33. left -= width;
  34. putc('\n', stdout);
  35.  
  36. }
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 2160KB
stdin
6
stdout
몇 줄에 출력할지 숫자 입력 : 
2*1=  2  3*1=  3  
2*2=  4  3*2=  6  
2*3=  6  3*3=  9  
2*4=  8  3*4= 12  
2*5= 10  3*5= 15  
2*6= 12  3*6= 18  
2*7= 14  3*7= 21  
2*8= 16  3*8= 24  
2*9= 18  3*9= 27  

4*1=  4  5*1=  5  
4*2=  8  5*2= 10  
4*3= 12  5*3= 15  
4*4= 16  5*4= 20  
4*5= 20  5*5= 25  
4*6= 24  5*6= 30  
4*7= 28  5*7= 35  
4*8= 32  5*8= 40  
4*9= 36  5*9= 45  

6*1=  6  
6*2= 12  
6*3= 18  
6*4= 24  
6*5= 30  
6*6= 36  
6*7= 42  
6*8= 48  
6*9= 54  

7*1=  7  
7*2= 14  
7*3= 21  
7*4= 28  
7*5= 35  
7*6= 42  
7*7= 49  
7*8= 56  
7*9= 63  

8*1=  8  
8*2= 16  
8*3= 24  
8*4= 32  
8*5= 40  
8*6= 48  
8*7= 56  
8*8= 64  
8*9= 72  

9*1=  9  
9*2= 18  
9*3= 27  
9*4= 36  
9*5= 45  
9*6= 54  
9*7= 63  
9*8= 72  
9*9= 81