Вопрос о печати последовательного шаблона - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь получить вывод, подобный этому, для заданных n переменных. Если n = 5, вывод должен быть следующим:

    *
   ***
  *****
 *******
*********

В моем коде, когда я печатаю, я получаю инвертированный вывод без пробелов. Я перепробовал много способов добиться этого, но не смог найти решение. Вывод, который я получаю для n = 5:

*********
*******
*****
***
*

Ниже приведен код:

#include <stdio.h>
int main() {
    int n=0;
    int b=0;

    puts("Please Enter an Integer");
    scanf("%d",&n);

    for(n;n>0;n--){
        b = 2*n - 1;
        for(b;b>0;b--){
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Следующий код более устойчив и составлен в отличие от предыдущего.

#include <stdio.h>

int main() {
    int n,a,b;

    puts("Please Enter an Integer");
    scanf("%d",&n);

    for(b=1;n>0;n--, b += 2){
        if(n!=1) {
            printf("%*s", n - 1, " ");
        }else{break;}

        for(a=0;a<b;a++){
            printf("*");
        }
        printf("\n");
    }
    return 0;
}
0 голосов
/ 04 ноября 2018

После некоторого интенсивного мозгового штурма мне удалось найти решение.

#include <stdio.h>


int main() {
    int n=0;
    int a=0;
    int b=1;
    int c=0;

    puts("Please Enter an Integer");
    scanf("%d",&n);

    for(n;n>0;n--){          // Loop indicating that the pattern will run n times.

        c=n-1;               // Loop for the spaces to align the pattern to the centre.
        for(c;c>0;c--){      
            printf(" ");
        }

        for(a;a<b;a++){      // Loop for the pattern.
            printf("*");
        }

        printf("\n");
        b=b+2;
        a=0;
    }
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...