这种嵌套循环要怎么看,可以最快的解读出来程序的内容

weixin_37671669 2017-03-25 05:21:52
#include<stdio.h>
int main(void)
{
char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char letter;

printf("please Enter a letter (for example: E ):\n");
scanf("%c",&letter);

int out_i, in_i_black, in_i_up, in_i_down;
for (out_i = 0; lets[out_i] <= letter; out_i++)
{
for (in_i_black = 0; in_i_black < (letter - lets[out_i]); in_i_black++)
{
putchar(' ');
}
for (in_i_up = 0; in_i_up < out_i;in_i_up++)
{
putchar(lets[in_i_up]);
}
for (in_i_down = out_i; in_i_down >= 0;in_i_down--)
{
putchar(lets[in_i_down]);
}
putchar('\n');
}

getchar();
getchar();
return 0;
}

假设我输入的是E,
每次看到这个的时候都头晕,各位有什么好的方法可以快速解读这个程序么(除了运行程序)?
...全文
133 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2017-03-26
  • 打赏
  • 举报
回复
好的格式,已经每层循环是要干什么的,起始和终结条件,就很容易解读了

#include<stdio.h>
int main(void)
{
	char lets[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	char letter;

	printf("please Enter a letter (for example: E ):\n");
	scanf("%c",&letter);

	int out_i, in_i_black, in_i_up, in_i_down;
	for (out_i = 0; lets[out_i] <= letter; out_i++) {
		for (in_i_black = 0; in_i_black < (letter - lets[out_i]); in_i_black++) {
			putchar(' ');
		}
		for (in_i_up = 0; in_i_up < out_i; in_i_up++) {
			putchar(lets[in_i_up]);
		}
		for (in_i_down = out_i; in_i_down >= 0; in_i_down--) {
			putchar(lets[in_i_down]);
		}
		putchar('\n');
	}

	getchar();
	getchar();
	return 0;
}
paschen 2017-03-26
  • 打赏
  • 举报
回复
最好的办法:不要抱着头空想,单步跟踪程序运行,观察每一步程序执行流程及变量变化情况

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧