C语言利用for循环打印菱形
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循环打印菱形的更多相关文章
- 编程题:利用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 ...
- 用for循环打印菱形
package nothh; public class mmm { public static void main(String[] args) { //for循环内的 for按顺序运算,先打印1/4 ...
- Java学习之for循环打印菱形练习
for循环语句是Java程序设计中非常有用的循环语句.一个for循环可以用来重复执行某条语句,直到某个条件得到满足.在Java 5新增的加强的foreach语法,也非常有用. 1. for语句 for ...
- 作业4.5-2用for循环打印菱形
package lx; public class lx { public static void main(String[] args) { for(int i = 1;i <= 10 ;i++ ...
- for循环 打印菱形 空 和 实
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><?ph ...
- 使用SQL循环打印'*'菱形
菱形每一行都是由n个' ' + n 个'**' + 1个'*' 组成的 例如高度为9的菱形(共print 9次),*最多的一次print为第五次第五次就是0个' ' + 4个'**' + 1个'*' ...
- C#利用for循环打印图形练习题
(1) namespace ConsoleApp2 { class Program { static void Main(string[] args) { ; i < ; i++)//外层循环控 ...
- 第4章 流程控制----编写Java程序,应用for循环打印菱形
package four; public class fouroneone { public static void main(String args[]){ ;i<=;i+=){ ;kong& ...
- C语言基础练习——打印菱形
C语言基础练习--打印菱形 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 17:17 ...
随机推荐
- 「NGK每日快讯」2021.2.8日NGK公链第97期官方快讯!
- NGK全球启动大会圆满落幕
加州时间2020年11月25日,NGK全球启动大会在美国硅谷圆满落幕.本次NGK全球启动大会为NGK正式在全球上线拉开了序幕. 百余位受邀嘉宾出席了本次NGK全球启动大会,其中包括NGK创始人.星盟投 ...
- JUC并发集合类CopyOnWriteList
CopyOnWriteList简介 ArrayList是线程不安全的,于是JDK新增加了一个线程并发安全的List--CopyOnWriteList,中心思想就是copy-on-write,简单来说是 ...
- Kubernetes和docker----1.开始使用k8s和docker
开始使用Kubernetes和docker docker命令 运行一个容器 docker run busybox echo "Hello world" 构建容器镜像 docker ...
- 用铁电存储器FRAM让穿戴式设备更省电
可穿戴设备应用中的显示屏消耗了大部分电池电力.解决方法之一是直接提高电池容量,但是大容量电池会加大尺寸和重量,对可穿戴设备不合适,尤其是在市场不断追求更小型化的新款产品时更是如此.更具挑战性的是电池技 ...
- js如何判断一假则假,全真则真
思路:初始化flag参数为true,一旦有一个为假,则将flag赋值为false,最后返回. 代码如下: checkSupplyWt(list){ var flag = true; list.forE ...
- Google单元测试框架gtest--值参数测试
测试一个方法,需要较多个参数进行测试,比如最大值.最小值.异常值和正常值.这中间会有较多重复代码工作,而值参数测试就是避免这种重复性工作,并且不会损失测试的便利性和准确性. 如果测试一个函数,需要些各 ...
- react入个门
起步 react 特点 不使用模板 不是一个mvc框架 响应式 轻量级的js库 原理 虚拟dom 将dom抽象成js对象 diff算法 搭建开发环境 react.js 核心文件 react-dom.j ...
- ios打包的IDP证书的创建方法
在我们打包ios应用的时候,需要一个IDP证书. 那么我们如何生成这个IDP证书呢?网上介绍的方法都是需要使用mac电脑,然后用mac电脑的钥匙串访问的功能先生成csr文件,然后去苹果开发者生成,然而 ...
- javascript中的闭包closure详解
目录 简介 函数中的函数 Closure闭包 使用闭包实现private方法 闭包的Scope Chain 闭包常见的问题 闭包性能的问题 总结 简介 闭包closure是javascript中一个非 ...