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

编写程序,输入整数n,输出n行的字符图案。例如n=5时输出:(每行最后一个图案在同一垂直线上)
*
**
***
****
*****
****
***
**
*
输入格式
输入一个整数
输出格式
输出2*n-1行的三角形
输入样例
2
输出样例
*
**
*

#include <stdio.h>

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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-18
#include <stdio.h>
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<n ? j++ : j--){
        for(k=0;k<40-j;k++)
            putc(' ',stdout);
        for(k=0;k<j;k++)
            putc('*',stdout);
        putc('\n',stdout);
    }
    return 0;
}

本回答被网友采纳
第2个回答  2020-02-07

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

相似回答