编写程序,输入整数n,输出n行的字符图案.例如n=5时输出:

2024-11-15 22:24:27
推荐回答(3个)
回答1:

#include 

int main(void)
{
    int i;
    int n;
    /* 当前行数 */
    int line;
    /* 每一行前面的空格数 */ 
    int space;
    /* 每一行后面的星号数 */ 
    int star;

    scanf("%d", &n);

    for (line = 1; line < 2 * n; line++) {
        /* 计算当前行的空格数 */
        if (line <= n)
            space = n - line;
        else
            space = line - n;

        /* 计算当前行的星号数 */
        star = n - space;

        /* 打印当前行前面的空格 */
        for (i = 0; i < space; i++)
            printf(" ");

        /* 打印当前行后面的星号 */
        for (i = 0; i < star; i++)
            printf("*");

        /* 下一行 */
        printf("\n");
    }

    return 0;
}

回答2:

#include 
int main(void){
    int i,j,k,n;
    printf("Input n(int n>0)...\nn=");
    if(scanf("%d",&n)!=1 || n<1){
        printf("Input error, exit...\n");
        return 0;
    }
    for(j=1,i=0;j;++i        for(k=0;k<40-j;k++)
            putc(' ',stdout);
        for(k=0;k            putc('*',stdout);
        putc('\n',stdout);
    }
    return 0;
}

回答3:

遇到这样的题目,要考虑的就是把这个图形横截分两半,一半是上面的直角三角形,另一半是下面的直角三角形(但下面的直角三角形是少了一条底边的),如下: