C语言已知一个正整数n怎么输出n阶的实心菱形?

 我来答
百度网友f84757f
2017-12-28 · TA获得超过115个赞
知道答主
回答量:121
采纳率:0%
帮助的人:75.5万
展开全部
#include<stdio.h>
int main(void)
{
int i,n,z,m,k,l;
scanf("%d",&n);
for(i=0;i<n;++i) //这个循环是设置上面的图形,设置i控制行数 ,输出n行
{
for(k=0;k<n-i;k++) //设置每一行输出空格的个数,可以看出是输入的数字-行数
printf(" ");
for(l=0;l<=i;l++) //同理 设置输出*的个数
printf("* ");
printf("\n"); //执行换行
}
for(i=n-1;i>=0;i--) //设置下面图形 比上面少了一行 所以是 n-1
{
for(k=0;k<n-i;k++) //同样设置空格
printf(" ");
for(l=0;l<=i;l++) //同样设置*的数目
printf("* ");
printf("\n"); //同样 换行
}
return 0;
}
应该可以看懂了 不懂再问吧 嘿嘿
oolgloo
2017-12-28 · TA获得超过2636个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:662万
展开全部
#include <stdio.h>

int main()
{
    int i, j, n;
    printf("请输入n: ");
    scanf("%d", &n);
    
    /*
     * 以下注释假设n=3进行分析
     */
    
    // 菱形上半部
    for (i=0; i<n; i++) {
        for (j=0; j<n-i-1; j++) { //左边的空格, 2-1-0递减
            printf(" ");
        }
        for (j=0; j<2*i+1; j++) { //右边的星号, 1-3-5递增
            printf("*");
        }
        printf("\n"); //下一行
    }
    // 菱形下半部
    for (i=1; i<n; i++) {
        for (j=0; j<i; j++) { //左边的空格, 1-2递增
            printf(" ");
        }
        for (j=0; j<2*(n-i)-1; j++) { //右边的星号, 3-1递减
            printf("*");
        }
        printf("\n"); //下一行
    }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式