题目是这样的,让我编写一个程序,提示用户输入大写字母,使用嵌套循环以金字塔的格式打印字母。
题目给出的图形是这样的
我思索了一番,大概有思路了。我的想法是这样的,先使用一个外层for循环来打印行数,然后再里面嵌套三个for循环分别打印空格,正序字母以及逆序字母。
我感觉我的思路很明确,于是我开始动手敲代码。
想法很好,于是我开始不慌不忙的敲代码了。
#include <stdio.h>
int main()
{
int
}
哎,到这步我开始想该定义些啥变量了,想了大概两秒钟,我就跳过了这一步。先写,需要啥我再定义啥,所以这导致我不停的修改。
接下来的代码我也懒得再敲一遍了,直接上图。
到这一步就是把行数,空格以及字母正序输出了,接下来就是把字母逆序输出,这点我觉得算是个小难点,因为我没有想到。(请忽略我的英语水平)
先给大家看看我错误的实例。
定义完后我还自信满满的觉得没问题,当我运行时我人傻了。
输出是这个鬼东西。
感觉距离答案很近了,但是似乎又很遥远,然后我深思熟虑了一番,我发现
这个n好像似乎和答案有着密切联系,但是我觉得没有错啊, 又是一段时间的脑细胞消耗,我终于发现了问题。
逆序输出其实和上面的正序输出的那个for循环是由关联的,我一直认为两个并行的for循环是两个独立的个体,其实不然。我在上一个for循环中定义的是k='A',k是随着i的增加而增加的,而他运行过一次后,得到的k值就是逆序输出的最大的字母。
于是我就写出了下面的代码
见证奇迹的时刻诞生了
gcc test.c -o test
./test(回车)
哈哈哈哈,哎,等等
退回程序一看
低级错误,问题不大。把n修改成k之后程序就可以完美运行了。
经过这道题,我也明白了,不仅思路要清晰,在编程的过程中还得细心细心再细心。