【发布时间】:2021-04-09 09:49:59
【问题描述】:
我正在用 C 编写一个程序来打印以下系列。
1
121
12321
1234321
下面是我的代码,它工作得很好,但是我可以做任何改变来使程序使用更少的循环。
#include <stdio.h>
int main() {
int num, i, j, terms, x;
printf("ENTER NUMBER OF TERMS: ");
scanf("%d", &terms);
x = terms--;
for(num=1;num<=terms;num++){
for(i=1;i<=x;i++){
printf(" ");
}
for(i=1; i<=num; i++) {
printf("%d", i);
}
for(j=num-1 ; j>0; j--){
printf("%d", j);
}
printf("\n");
x--;
}
}
【问题讨论】:
-
如果您的代码有效(硬性要求)并且您希望对代码进行审查以可能改进它,那么请改为在the Code Review SE 上发帖。
-
提示:将变量声明为尽可能接近它们的使用位置,例如
int x = terms--和for (int num = 1; ...) -
可以使用 printf 删除第一个循环(实际上是隐藏的)来进行缩进。关于缩进如何正确缩进您的代码? ;-)
-
@tadman 我认为这是大学的标准 C 实践,我们仍然在学习必须在每个块的开头放置声明的标准。 ????
-
请解释为什么你想要更少的循环。有几种不同的方法可以实现这一目标。但元原因会拒绝其中的一些。例如,我不知何故觉得使用递归和特定的 printf 功能不会被尚未讨论它们的编程课的老师所欣赏,即使代码可以有零循环(我敢打赌这很容易实现)。此外,代码变得更加难以阅读。因此,请退后一步,描述您希望通过减少循环次数来实现的目标。