第1关:定制长方形
问题描述
根据用户的输入数据,输出满足要求的定制长方形。 正整数n控制长方形的宽度和高度。 字符c指定长方形由指定的字符c构成。 若字符solid的值为‘y’表示需要输出实心长方形,否则需要输出空心长方形。 空心长方形的中心部分用空格填充。
例如: 当n = 4,c = ‘#’,solid = ‘y’时应该输出:
####
####
####
####
当n = 4, c = ‘x’, solid = ‘n’时应该输出:
xxxx
x x
x x
xxxx
输入
输入数据只有一行,由一个正整数和两个字符构成,分别表示长方形尺寸n、组成字符c和是否实心solid,三个数据两两之间都用一个空格分开。
输出
根据输入数据输出定制的长方形。
输入示例
4 x n
输出示例
xxxx
x x
x x
xxxx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include <stdio.h> int main () { int n, i, j; char c, solid; scanf ("%d %c %c" , &n, &c, &solid); if (solid == 'y' ) { for (i = 0 ; i < n; i++) { for (j = 0 ; j < n; j++) { printf ("%c" , c); } printf ("\n" ); } } else { for (i = 0 ; i < n; i++) { for (j = 0 ; j < n; j++) { if (i == 0 || i == n - 1 || j == 0 || j == n - 1 ) { printf ("%c" , c); } else { printf (" " ); } } printf ("\n" ); } } return 0 ; }
第2关:字母三角形
问题描述
根据用户输入的正整数n,输出如示例所示的字母三角形。
输入
一个正整数n。
输出
输出如示例所示的字母三角形。 同一行的每两个大写字母之间用一个空格分开。 为简化程序起见,每一行的末尾有一个多余的空格。 最后一行的行首不要有多余的空格。
输入示例
4
输出示例
A
B A B
C B A B C
D C B A B C D
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include <stdio.h> int main () { int n, i, j; scanf ("%d" , &n); for (i = 0 ; i < n; i++) { for (j = 0 ; j < n - i - 1 ; j++) { printf (" " ); } for (j = i; j >= 0 ; j--) { printf ("%c " , 'A' + j); } for (j = 1 ; j <= i; j++) { printf ("%c " , 'A' + j); } printf ("\n" ); } return 0 ; }
第3关:倒置的字母三角形
问题描述
请你编写一段程序,输出一个由指定行数的大写字母构成的倒置三角形,这个字母三角形必须满足下列条件(请参照示例):
倒置三角形的最下角顶点是固定字符‘A’;
倒置三角形的中心线上的字符从下到上依次是‘A’、‘B’、‘C’、……;
倒置三角形每一行上的字母必须按中心线左右对称:在中心线左侧,字母依次减小,在中心线右侧,字母依次增大;
倒置三角形每一行上的每两个字母之间用一个空格分开,第一行的第一个字母前没有空格。
输入
一个正整数n。
输出
输出指定行数的倒置字母三角形。 同一行的每两个大写字母之间用一个空格分开。 为简化程序起见,每一行的末尾有一个多余的空格。 第一行的行首不要有多余的空格。
输入示例
4
输出示例
G F E D E F G
E D C D E
C B C
A
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include <stdio.h> int main () { int n; int i, j, t; char c = 'A' ; scanf ("%d" , &n); for (i = n; i >= 0 ; i--) { t = 2 * (i - 1 ); for (j = 0 ; j < n - i; j++) printf (" " ); for (j = t; j >= i - 1 ; j--) { printf ("%c " , c + j); } for (j = i; j <= t; j++) { printf ("%c " , c + j); } if (i > 1 ) { printf ("\n" ); } } return 0 ; }