经典C语言程序设计100例 -- C 和 Python 版 (06 - 10)


【06】格式化输出
题目:用*号输出字母C的图案。
思路:可先用'*'号在纸上写出字母C,再分行输出。如果输出图形较大,且有规律可循,可考虑使用循环。
C 语言代码
int main()
{
    const char *p =
        "    ****    \n"
        "  **    **  \n"
        "**          \n"
        "**          \n"
        "**          \n"
        "  **    **  \n"
        "    ****    \n";

    printf("%s", p);
    return 0;
}
Python 代码
shape = '''
    ****    
  **    **
 **      **
 **         
  **    **
    ****
'''
print(shape)
点评:Python中字符串有三种形式:单引号、双引号和三引号,三种表示方式相同,均表示字符串。其中三引号字符串可以保留文本格式,如换行符。

【07】
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
一个字符使用 8 bit 表示,共有256中表示。而标准的 ASCII 只使用了其中的一半 7 bit,共 128 中表示法。剩余的 128 种表示法,通常被用来扩展ASCII码的表示,称之为 扩展的ASCII。标准ASCII 参照表,以及常用的扩展 ASCII 码参照表,可以参见:http://www.cplusplus.com/doc/ascii/,这题就略过了。
【08】乘法口诀
题目:输出9*9口诀
思路:分行与列考虑,共9行9列,i控制行,j控制列。
C语言代码
void fun()
{
    for (int i = 0; i <= 9; ++i)
    {
        for (int j = 1; j <= i; ++j)
        {
            printf("%d*%d=%2d ", i, j, i*j);
        }
        printf("\n");
    }
}
Python 代码
def fun():
    for i in range(1, 10):
        for j in range(1, i+1):
            print('{0}*{1}={2:2} '.format(j, i, i*j), end='')
        print('')
输出:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
点评:利用 range() 产生数字序列,利用 str.format 提供的灵活的格式化输出

【09】国际象棋棋盘
题目:要求输出国际象棋棋盘。
程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
C 语言代码

void fun()
{
    for (int i = 0; i < 8; ++i)
    {
        for (int j = 0; j < 8; ++j)
        {
            if ((i+j) % 2 == 0)
                printf("%c", '#');
            else
                printf(" ");
        }
        printf("\n");
    }
}
Python 代码

def fun():
    for i in range(8):
        for j in range(8):
            if (i+j) % 2 == 0:
                print('#', end='')
            else:
                print(' ', end='')
        print()

【10】打印楼梯
题目:打印楼梯
程序分析:每行先输出一定数量的空格,然后末尾输出"|_"
C 语言代码
void fun(int n)
{
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j <= 2*i; ++j)
        {
            printf(" ");
        }
        printf("|_\n");
    }
}
Python 代码
def fun(n):
    for i in range(n):
        for j in range(2*i):
            print(" ", end='')
        print("|_")

评论关闭