帮助进行简单的C编程练习

我是C编程的新手,编程练习有点困难,我相信对于那些了解C的人来说这很简单,不幸的是你必须遵守练习规则。

这是练习:

让程序请求用户输入大写字母。 使用嵌套循环生成如下金字塔图案:

A ABA ABCBA ABCDCBA ABCDEDCBA 

模式应扩展到输入的字符。 例如,前面的模式将由输入值E产生。提示:使用外部循环来处理行。 连续使用三个内部循环,一个用于处理空格,一个用于按升序打印字母,另一个用于按降序打印字母。

所以我得到了这个:

 #include  int main(void) { int rows; int spaces; char asc; char desc; char input; printf("Please enter an uppercase letter: "); scanf("%c", &input); for (rows = 'A'; rows  rows; spaces--) { printf(" "); } for (asc = 'A'; asc = rows; desc--) { printf("%c", desc); } printf("\n"); } return 0; } 

你非常接近:

 for (desc = asc - 2; desc >= 'A'; desc--) { 

注意,在第二个内循环之后, ascrows + 1 。 然后,您将desc初始化为rows - 1 。 您应该能够看到为什么>= rows是错误的,并且不会导致迭代。

正确的条件是>= 'A'

 #include  #include  #define ROW 6 int main() { char let = '\0', ch; int row; scanf("%c", &let); for (row = 0; row <= ROW; row++) { for (ch = let; let > (ch + row); --ch) { for (ch = let; let < (ch + row); ++ch) { printf("%c", ch); } // ch = let; printf("\n"); } } return 0; } 

任何评论或更正都将受到高度赞赏..我也是一个新的//学习者;)