C语言输出菱形(C笔记)

C语言输出菱形

通过for循环语句进行遍历,打印总行数和总列数相等的菱形。
两种思维:
1.从第一行开始遍历所有列
2.从第一列开始遍历所有行

程序是从第一行开始遍历所有列

打印上半部分当前行与当前列的关系:
(column+1)/2 - (i-1) <= j && j<= (column+1)/2 + (i-1)

j>=(column+1)/2-(i-1) (column+1)/2-(i-1)为第i行左边的星号
j<=(column+1)/2+(i-1) (column+1)/2+(i-1)为第i行右边的星号

打印下半部分当前行与当前列的关系:
(column+1)/2-(line-i)<=j && j<=(column+1)/2+(line-i)

j>=(column+1)/2-(line-i) (column+1)/2-(line-i)为第i行左边的星号
j<=(column+1)/2+(line-i) (column+1)/2+(line-i)为第i行右边的星号

#include <stdio.h>
#include<stdlib.h>

int main()
{
    int line;      //菱形总行数
    int column;   //菱形总列数
    int i;        //当前行
    int j;        //当前列
    printf("请输入菱形的行数(奇数):");
    scanf("%d",&line);
    //判断是否是奇数
    if (line %2 == 0)
    {
        printf("必须输入奇数!\n");
        exit(1);
    }
    column = line;   //总行数和总列数相同
    for ( i = 1; i <= line; i++)   //遍历所有行
    {
        if (i< (line+1)/2+1)       //上半部分(包括中间一行)
        {
            for (j = 1; j <= column; j++)    //遍历上部分的所有列
            {
                if ((column+1)/2 - (i-1) <= j && j<= (column+1)/2 + (i-1))
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }
                
            }
            
        }
        else    //下半部分
        {
            for (j = 1; j <= column; j++)  
            {
                if ((column+1)/2-(line-i)<=j && j<=(column+1)/2+(line-i))
                {
                    printf("*");
                }
                else
                {
                    printf(" ");
                }              
            }
        }
        printf("\n");    
    }   
    system("pause");
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜籽@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值