2016-12-29 4 views
-1

私はすでにこの練習問題をCで書いています。ここでprintf(%2i)とprintf(% 3i)。Cのような印刷出力の前に空白を入れてください

数字の前にスペースを入れて見栄えを良くするにはどうすればいいですか?

#! python3 
# 007.py - Write a program that prints a multiplication table for numbers up to 12. 

print('----------------------------------------') 
print('Multiplication Table from 1 - 12') 
print('----------------------------------------') 
print(' 1 2 3 4 5 6 7 8 9 10 11 12') 
print('----------------------------------------') 

for i in range(1, 13): 
    if i > 1: 
     print('\n', end="") 

    print(' ' + str(i) + ' |', end="") 
    result = i 

    for n in range(1, 13): 
     result = i * n 
     print(' ' + str(result), end="") 

print('\n') 
print('----------------------------------------') 

出力:

---------------------------------------- 
1 2 3 4 5 6 7 8 9 10 11 12 
---------------------------------------- 
1 | 1 2 3 4 5 6 7 8 9 10 11 12 
2 | 2 4 6 8 10 12 14 16 18 20 22 24 
3 | 3 6 9 12 15 18 21 24 27 30 33 36 
4 | 4 8 12 16 20 24 28 32 36 40 44 48 
5 | 5 10 15 20 25 30 35 40 45 50 55 60 
6 | 6 12 18 24 30 36 42 48 54 60 66 72 
7 | 7 14 21 28 35 42 49 56 63 70 77 84 
8 | 8 16 24 32 40 48 56 64 72 80 88 96 
9 | 9 18 27 36 45 54 63 72 81 90 99 108 
10 | 10 20 30 40 50 60 70 80 90 100 110 
11 | 11 22 33 44 55 66 77 88 99 110 121 
12 | 12 24 36 48 60 72 84 96 108 120 132 

Cコード:

/** 
    * Write a program that prints a multiplication table 
    * for numbers up to 12. 
    * 15.12.2016 
    */ 

#include <stdio.h> 

int main(void) 
{ 
    int result; 

    printf ("-----------------------------------------------------\n"); 
    printf ("\tMultiplication Table from 1 - 12\n"); 
    printf ("-----------------------------------------------------\n"); 

    printf ("  1 2 3 4 5 6 7 8 9 10 11 12\n"); 
    printf ("-----------------------------------------------------\n"); 

    for (int i = 1; i <= 12; ++i) 
    { 
     if (i > 1) 
     { 
     printf ("\n"); 
     } 

     printf (" %2i | ", i); 
     result = i; 

     for (int n = 1; n <= 12; ++n) 
     { 
     result = i * n; 
     printf ("%3i ", result); 
     } 
    } 
    printf ("\n"); 
    printf ("-----------------------------------------------------\n"); 

    return 0; 
} 

出力:

 Multiplication Table from 1 - 12 
----------------------------------------------------- 
     1 2 3 4 5 6 7 8 9 10 11 12 
----------------------------------------------------- 
    1 | 1 2 3 4 5 6 7 8 9 10 11 12 
    2 | 2 4 6 8 10 12 14 16 18 20 22 24 
    3 | 3 6 9 12 15 18 21 24 27 30 33 36 
    4 | 4 8 12 16 20 24 28 32 36 40 44 48 
    5 | 5 10 15 20 25 30 35 40 45 50 55 60 
    6 | 6 12 18 24 30 36 42 48 54 60 66 72 
    7 | 7 14 21 28 35 42 49 56 63 70 77 84 
    8 | 8 16 24 32 40 48 56 64 72 80 88 96 
    9 | 9 18 27 36 45 54 63 72 81 90 99 108 
10 | 10 20 30 40 50 60 70 80 90 100 110 120 
11 | 11 22 33 44 55 66 77 88 99 110 121 132 
12 | 12 24 36 48 60 72 84 96 108 120 132 144 
----------------------------------------------------- 
+2

はたぶん、もしかしたら、Cタグは少しここに置き忘れています。 :) –

+0

あなたが探しているものはここで説明されていると思う[ここ](http://stackoverflow.com/questions/339007/nicest-way-to-pad-zeroes-to-string) – pbn

+0

Pythonには独自の書式設定ミニがあります言語(https://docs.python.org/2/library/string.html#formatspecで指定) –

答えて

1

スタートここでは、この私は信じているため、あなたが探しているもの本町、ちょうどC.に

古い方法のように。

https://docs.python.org/2/library/string.html#format-specification-mini-language

私はあなたのソリューションを実装するために必要な正確に何を把握する時間がありませんが、私は、これはあなたが必要な答えである確信しています。 Pythonの最良の部分のほかに、準抽象的な問題への論理的な解決策がありました。それはあなたに見覚えます

0

この方法:

print ("-----------------------------------------------------") 
print ("\tMultiplication Table from 1 - 12") 
print ("-----------------------------------------------------") 
print ("  1 2 3 4 5 6 7 8 9 10 11 12") 
print ("-----------------------------------------------------") 

for i in range(1, 13): 
    print (" %2i" % i, end = " | ") 
    for n in range(1, 13): 
     print ("%3i " % (i * n), end="" if n < 12 else "\n") 

print ("-----------------------------------------------------") 
関連する問題