【发布时间】:2011-06-10 14:49:30
【问题描述】:
“有一个程序要求用户输入一个大写字母。使用嵌套循环产生这样的金字塔模式:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
模式应该扩展到输入的字符。例如,前面的模式将由输入值 E 产生。"
到目前为止,我已经这样做了好几个小时,并且在向前遍历字母表时,我得到了正确格式化字母的“金字塔”:
#include <stdio.h>
int main(void)
{
char ch = 0;
char ch2 = 0;
int rows = 0;
printf("Enter a character: ");
scanf("%c", &ch);
rows = ch - 64;
while(rows > 0)
{
int spaces;
for(spaces = rows-1; spaces > 0; spaces--)
{
printf(" ");
}
ch2 = 65;
while(ch2 < (ch-(rows-2)))
{
printf("%c", ch2);
ch2++;
}
printf("\n");
rows--;
}
}
但是,我觉得我试图让它正确地向后迭代时碰了壁。我知道它应该只是几个基本循环,但我很好,真的被卡住了。我敢肯定这很容易......我想我已经看了太久了。想法?
【问题讨论】:
-
首先,如果要对字符使用文字值,请使用字符文字。
'A'比65清晰得多。但这对算法完全没有帮助。 -
“ABCCDCDA”中的形态波动是由什么规则造成的?
-
我认为
ABCDCDA应该是ABCDCBA -
我认为这只是作者的一个错字 - 它应该是 ABCDCBA
标签: c