(菱形字母图G)OJ杂不能通过?
程序代码:#include <stdio.h>
void draw(int n) {
int ch, rows = sum(n), cols = 1, i, j, space = n - 1;
for(i = 0; i < rows; i++) {
ch = 'A';
for(j = 0; j < space; j++)
putchar(' ');
for(j = 0; j < cols; j++)
putchar(j < cols / 2 ? ch++ : ch--);
if(i < rows / 2) {
space--;
cols += 2;
} else {
space++;
cols -= 2;
}
putchar('\n');
}
}
int sum(int n) {
int s = 1, i;
for(i = 1; i < n; i++)
s += 2;
return s;
}
int main(void) {
int n, i = 1;
while(scanf("%d", &n) != EOF) {
if(n < 1 || n > 26)
printf("No image!\n\n");
else {
printf("Case %d:n=%d\n", i++, n);
draw(n);
printf("\n");
}
}
return 0;
}菱形字母图G问题描述:
输入一个整数n,输出如下用大写字母构成的有规律的图形。如n=3,有图形
但对有些整数n,是无法输出这样的图形的,如n=30。
输入:
输入有若干行,每行有一个整数n,(|n|<65536)。 输入直到文件输入结束。
输出:
对每一行的测试数据,先在一行上输出“Case #:”,其中“#”是测试数据的行编号(从1开始),再在同一行上输出n的具体值,格式如“n=3”。接着在下面的一行或若干行上输出结果图形,尾部无多 余空格。如无法按要求输出菱形字母图,那么输出“No image!”;两组输出数据之间空一行。
输入样例:
3
4
输出样例:
Case 1: n=3
A
ABA
ABCBA
ABA
A
Case 2: n=4
A
ABA
ABCBA
ABCDCBA
ABCBA
ABA
A
http://acmoj.shu.
[ 本帖最后由 lz1091914999 于 2011-6-22 21:58 编辑 ]









