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

编写程序,输入整数n,输出n行的字符图案。例如n=5时输出:(每行最后一个图案在同一垂直线上)*************************输入格式输入一个整数输出格... 编写程序,输入整数n,输出n行的字符图案。例如n=5时输出:(每行最后一个图案在同一垂直线上)
*
**
***
****
*****
****
***
**
*
输入格式
输入一个整数
输出格式
输出2*n-1行的三角形
输入样例
2
输出样例
*
**
*
展开
 我来答
a525970280
推荐于2018-02-26 · TA获得超过1163个赞
知道小有建树答主
回答量:698
采纳率:40%
帮助的人:422万
展开全部
#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;
}
White_MouseYBZ
2016-11-18 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6594万
展开全部
#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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-02-07
知道答主
回答量:32
采纳率:0%
帮助的人:2万
展开全部

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式