【C言語】
九九表右詰め左詰め
printf書式の使い方

右詰め 九九表printf  左詰め

■printf(右詰め書式%3d)

#include <stdio.h>
int main(void){
    printf("右詰め%%3d\n");
    for(int i = 1; i <= 9; i++){
        for(int j = 1; j <= 9; j++){
            printf("%3d|",i*j);
        }
        printf("\n");
    }
}

●実行結果(右詰め九九表)

./a.out
右詰め%3d
  1|  2|  3|  4|  5|  6|  7|  8|  9|
  2|  4|  6|  8| 10| 12| 14| 16| 18|
  3|  6|  9| 12| 15| 18| 21| 24| 27|
  4|  8| 12| 16| 20| 24| 28| 32| 36|
  5| 10| 15| 20| 25| 30| 35| 40| 45|
  6| 12| 18| 24| 30| 36| 42| 48| 54|
  7| 14| 21| 28| 35| 42| 49| 56| 63|
  8| 16| 24| 32| 40| 48| 56| 64| 72|
  9| 18| 27| 36| 45| 54| 63| 72| 81|

■printf(左詰め書式%-3d)

#include    <stdio.h>
int main(void){
    printf("左詰め%%-3d\n");
    for(int i = 1;i <= 9;i++){
        for(int j = 1;j <= 9;j++){
            printf("%-3d|",i*j);
        }
        printf("\n");
    }
}

●実行結果(左詰め九九表)

./a.out
左詰め%-3d
1  |2  |3  |4  |5  |6  |7  |8  |9  |
2  |4  |6  |8  |10 |12 |14 |16 |18 |
3  |6  |9  |12 |15 |18 |21 |24 |27 |
4  |8  |12 |16 |20 |24 |28 |32 |36 |
5  |10 |15 |20 |25 |30 |35 |40 |45 |
6  |12 |18 |24 |30 |36 |42 |48 |54 |
7  |14 |21 |28 |35 |42 |49 |56 |63 |
8  |16 |24 |32 |40 |48 |56 |64 |72 |
9  |18 |27 |36 |45 |54 |63 |72 |81 |

■printf(零埋め書式%03d)

#include <stdio.h>
int     main(void){
    printf("零埋め%%03d\n");
    for(int i = 1; i <= 9; i++){
        for(int j = 1; j <= 9; j++){
            printf("%03d|",i*j);
        }
        printf("\n");
    }
}

●実行結果(零埋め九九表)

./a.out
零埋め%03d
001|002|003|004|005|006|007|008|009|
002|004|006|008|010|012|014|016|018|
003|006|009|012|015|018|021|024|027|
004|008|012|016|020|024|028|032|036|
005|010|015|020|025|030|035|040|045|
006|012|018|024|030|036|042|048|054|
007|014|021|028|035|042|049|056|063|
008|016|024|032|040|048|056|064|072|
009|018|027|036|045|054|063|072|081|

参考:

FIO47-C. 書式指定文字列を正しく使う