如何打印星号的递减模式,其中星号在 C 中被空格替换?

问题描述 投票:0回答:1

我正在尝试用 C 程序打印这个模式,它以 10 个星号开头,每次打印时减一,用空格替换星号。我对 C 编程非常陌生,不知道我在做什么,所以我能做的最多就是打印星号并减一,但没有空格。

这就是我想要得到的模式。我必须用 A 表示星号,用 S 表示空格,才能在 stackoverflow 上正确打印。我不得不重新问我的问题,因为第一次的格式不正确。

AAAAAAAAAA↵
SAAAAAAAAA↵
SSAAAAAAAA↵
SSSAAAAAAA↵
SSSSAAAAAA↵
SSSSSAAAAA↵
SSSSSSAAAA↵
SSSSSSSAAA↵
SSSSSSSSAA↵
SSSSSSSSSA↵

这是我目前得到的模式。

A↵
SA↵
SSA↵
SSSA↵
SSSSA↵
SSSSSA↵
SSSSSSA↵
SSSSSSSA↵
SSSSSSSSA↵
SSSSSSSSSA↵

我的代码如下所示:

for(int i=1; i<=10; i++){
for(int x=1; x<=i; x++){
    printf(x<i ? " " : "*");
}
printf("\n");
}

如您所见,我可以毫无问题地增加空格,但我并没有从适当数量的星号开始。

c
1个回答
0
投票
for( int n = 1; n <= 10; ++n){
    for( int i = 1; i < n; ++i)
        printf(" ");
    for( int j = 10; j >= n; --j)
        printf("*");
    printf("\n");

这段代码对我来说是原始提问者想要做的事情的解决方案。我使用两个内部 for 循环分别以递增和递减的方式打印空格和星号。我在外部使用了专有的“小于”条件,因此第一行从头开始打印。

© www.soinside.com 2019 - 2024. All rights reserved.