【发布时间】:2020-11-05 04:10:23
【问题描述】:
lang-c 输出应如下所示:
# #
## ##
### ###
#### ####
但我的问题是我有名为 rightPyramid(num_rows) 的函数,其中包含代码:
void rightPyramid(int num_rows)
{
for(int row =1; row<=num_rows; row++){
for(int col=1; col<=row; col++ ){
printf("#");
}
printf("\n");
}
}
rightPyramid(num_rows) 的输出:
#
##
###
####
leftPyramid(num_rows) 的代码是:
void leftPyramid(int num_rows)
{
for (int i = 1; i<=num_rows; i++){
for(int j=1; j<=num_rows-i; j++){
printf(" ");
}
for(int k= 1; k<=i; k++){
printf("#");
}
printf("\n");
}
}
leftPyramid(num_rows) 的输出:
#
##
###
####
有没有办法操作这两个函数来输出:
# #
## ##
### ###
#### ####
【问题讨论】:
-
不,没有。打印换行符的那一刻,您就失去了在该行上打印其他内容的机会。编写一个执行
for (...) { for (...) {putchar('#');} putchar(' '); for (...) {putchar('#');} }的函数 -
如果你想把它分成单独的函数,你可以有两个函数来获取行号和行数,一个只打印该行的左侧部分,另一个只打印该行的右侧部分。然后就可以循环调用这两个函数了。
-
我认为这两个 cmets 都可以作为答案。即使没有额外的解释。
-
这能回答你的问题吗? stackoverflow.com/questions/58037580/…
-
谢谢大家,我只是想知道这种可能性。我会尽量按照 -Barmar 的建议去做。