C语言代码 输出菱形

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int sum, i = 0;
    printf("请输入中间一行有几个*:"); //把菱形看作两个等腰三角形拼在一起,输入底边长
    scanf("%d",&sum);//把底边长度存入sum变量中
    while (i < sum*2-1) //因为两个三角形有一行重叠所以要减去一行,表示输出的行数
    {
        if (i < sum) //上半三角形的输出
        {
            for (int k = i; k < sum; k++)  //定义整型k,表示每行输出的空格数量,第一行输出sum个,第二行输出sum-1个……
            {
                printf(" ");   //输出空格
            }
            for (int j = 0; j <= i; j++) //定义整型j,表示每行输入的* 数量,第一行输出1个,第二行2个……
            {
                printf("* "); //输出* 
            }
        }
        else //下半三角形的输出   与上三角基本相同,把空格和* 的循环结构进行交换即可
        {
            for (int j = sum-2; j < i; j++)
            {
                printf(" ");
            }
            for (int k = i+1; k < sum*2; k++)
            {
                printf("* ");
            }
        }
        i++;  //循环变量自增1;
        printf("\n");//每行进行一次换行
    }
    return 0;
}

结果图展示:

  

如果想要不输入而直接输出一个菱形的话:  下面展示底边长为5的菱形代码,获得其他底边长菱形修改sum的值即可

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int sum, i = 0;
    sum=5;//改这里!!
    while (i < sum*2-1) //因为两个三角形有一行重叠所以要减去一行,表示输出的行数
    {
        if (i < sum) //上半三角形的输出
        {
            for (int k = i; k < sum; k++)  //定义整型k,表示每行输出的空格数量,第一行输出sum个,第二行输出sum-1个……
            {
                printf(" ");   //输出空格
            }
            for (int j = 0; j <= i; j++) //定义整型j,表示每行输入的* 数量,第一行输出1个,第二行2个……
            {
                printf("* "); //输出* 
            }
        }
        else //下半三角形的输出   与上三角基本相同,把空格和* 的循环结构进行交换即可
        {
            for (int j = sum-2; j < i; j++)
            {
                printf(" ");
            }
            for (int k = i+1; k < sum*2; k++)
            {
                printf("* ");
            }
        }
        i++;  //循环变量自增1;
        printf("\n");//每行进行一次换行
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值