C语言利用for循环打印菱形(高度为奇数)

这次用的方法是上下部分分开打印,先打印上部分,再打印下部分。

先举个简单的例子打印,再改进代码,登堂入室从而理解。

例:打印一个高度(高度必须为奇数)为 5 的菱形,上下拆分 就是 上部分为 3行的三角形 ,下部分为2行的倒三角形(代码如下:)

#include<stdio.h>
int main()
{
int i,j;
for(i = 1;i <= 3;i++)//打印高度为3的三角形
{
for(j=i;j<=3;j++)//打印上部分空格
{
printf(" ");
}
for(j = 1;j <= 2*i-1;j++)//打印三角形实体
{
printf("*");
}
printf("\n");
}
//=================================上下部分分界线
for(i = 1;i <= 2;i++) //打印下部分高度为2的倒三角形
{
for(j = 1;j <= (2+i)-1;j++) //打印下部分空格
{
printf(" ");
}
for(j = 1;j <= 5-(i*2);j++)//打印倒三角形实体
{
printf("*");
}
printf("\n");
} return 0;
}

效果图如下:

我们知道上面的原理 我就就可以进阶的改写代码 从而实现打印任意高度的菱形

我们要求输入高度 且 改变里面的数值 就得到了以下代码:

#include<stdio.h>
int main()
{
int i,j,height;
printf("please enter height:");
scanf("%d",&height);
for(i = 1;i <= (height / 2) + 1;i++)//打印高度为height的三角形
{
for(j=i;j<= (height / 2) + 1;j++)//打印上部分空格
{
printf(" ");
}
for(j = 1;j <= 2*i-1;j++)//打印三角形实体
{
printf("*");
}
printf("\n");
}
//=================================上下部分分界线
for(i = 1;i <= height / 2;i++) //打印下部分高度的倒三角形
{
for(j = 1;j <= (2+i)-1;j++) //打印下部分空格
{
printf(" ");
}
for(j = 1;j <= height - (i*2);j++)//打印倒三角形实体
{
printf("*");
}
printf("\n");
} return 0;
}

效果图:

注意:这里的高度必须是奇数,否者是不能打印出来菱形的!

说明:这里的打印空格 和 打印三角形实体 是需要算出来的,可以去研究一下。

最后:希望能帮到有需要的人。

C语言利用for循环打印菱形的更多相关文章

  1. 编程题:利用for循环打印 9*9 表?

    利用for循环打印 9*9  表? 1*1=1 1*2=2  2*2=4 1*3=3  2*3=6  3*3=9 1*4=4  2*4=8  3*4=12  4*4=16 1*5=5  2*5=10  ...

  2. 用for循环打印菱形

    package nothh; public class mmm { public static void main(String[] args) { //for循环内的 for按顺序运算,先打印1/4 ...

  3. Java学习之for循环打印菱形练习

    for循环语句是Java程序设计中非常有用的循环语句.一个for循环可以用来重复执行某条语句,直到某个条件得到满足.在Java 5新增的加强的foreach语法,也非常有用. 1. for语句 for ...

  4. 作业4.5-2用for循环打印菱形

    package lx; public class lx { public static void main(String[] args) { for(int i = 1;i <= 10 ;i++ ...

  5. for循环 打印菱形 空 和 实

    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><?ph ...

  6. 使用SQL循环打印'*'菱形

    菱形每一行都是由n个' ' + n 个'**' + 1个'*' 组成的 例如高度为9的菱形(共print 9次),*最多的一次print为第五次第五次就是0个' '  + 4个'**' + 1个'*' ...

  7. C#利用for循环打印图形练习题

    (1) namespace ConsoleApp2 { class Program { static void Main(string[] args) { ; i < ; i++)//外层循环控 ...

  8. 第4章 流程控制----编写Java程序,应用for循环打印菱形

    package four; public class fouroneone { public static void main(String args[]){ ;i<=;i+=){ ;kong& ...

  9. C语言基础练习——打印菱形

    C语言基础练习--打印菱形 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 17:17 ...

随机推荐

  1. 「NGK每日快讯」2021.2.1日NGK公链第90期官方快讯!

  2. spring框架aop用注解形式注入Aspect切面无效的问题解决

    由于到最后我的项目还是有个邪门的错没解决,所以先把文章大概内容告知: 1.spring框架aop注解扫描默认是关闭的,得手动开启. 2.关于Con't call commit when autocom ...

  3. 【DB宝19】在Docker中使用MySQL高可用之MHA

    目录 一.MHA简介和架构 1.1 MHA简介 1.2 MHA工具包的组成 1.3 MHA架构 二.准备MHA环境 2.1 下载MHA镜像 2.2 编辑yml文件,创建MHA相关容器 2.3 安装do ...

  4. django学习-22.admi管理后台页面的文案展示等相关配置

    目录结果 1.前言 2.完整的操作步骤 2.1.第一步:对[settings.py]里的相关常量的值做如下修改 2.2.第二步:重启django项目[helloworld]的服务 2.3.第三步:重新 ...

  5. [转]ROS订阅激光数据

    https://github.com/robopeak/rplidar_ros/blob/master/src/client.cpp /*   * Copyright (c) 2014, RoboPe ...

  6. java荷兰国旗问题

    荷兰国旗包含三种颜色:红.白.蓝. 有三种颜色的球,算法的目标是将这三种球按颜色顺序正确地排列.它其实是三向切分快速排序的一种变种,在三向切分快速排序中,每次切分都将数组分成三个区间:小于切分元素.等 ...

  7. ffmpeg:为视频添加静态水印

    在ffmpeg中,添加水印需要用overlay滤镜,这是一个复杂滤镜,因为它需要两个输入,默认第一个输入是主画面,第二输入为水印,先执行一个简单的看看. 下面有两个文件,一个是可爱的大雄兔,一个是可爱 ...

  8. spring-ioc的注解 理解-1

    简单对象注入的理解 用到了两个对象 Student .Wife ,一个xml配置(在idea编译器的resource文件下),主要是为让spring去扫描注解,一个测试类,一个pom.xml,导入需要 ...

  9. iframe 调用父页面元素

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="IFrame.aspx.cs ...

  10. Django简单的使用及一些基础方法

    目录 一.静态文件配置 1. 什么是静态文件 2. 静态文件的用法 3. 静态文件的动态绑定 二.请求方式与相应 1. get请求 2. post请求 3. Django后端视图函数处理请求 三.re ...