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 ...
随机推荐
- JS实现点击加载更多效果
适用场景:后端直接把所有的文章都给你调出来了,但是领导又让做点击加载更多效果...(宝宝心里苦啊) 点击加载更多效果: 第一个和第二个参数分别是btn和ul的DOM(必填) ...
- 【C#】反射的用法及效率对比
反射实例化类 public class Person { public string Name { get; set; } public Person(string name) { this.Name ...
- kvm-PLE代码分析
Linux源码版本: 5.3.0 相关数据结构 #define KVM_DEFAULT_PLE_GAP 128 // ple_gap #define KVM_VMX_DEFAULT_PLE_WINDO ...
- Java基本概念:异常
一.简介 描述: 异常(Exception)指不期而至的各种状况,异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据. 要打开的文件不存在. 网络通信时连接中断,或者JVM内存溢出. 异常 ...
- Serverless 2.0,鸡蛋还是银弹?
简介: 本篇旨在介绍 Serverless 如今应用到应用(非病句)的各种困境,以及帮助用户如何去规避一些问题,提前了解方向. 浪潮 从 2014 年 Serverless 冒头至今,已经有无数的勇士 ...
- HDOJ-1069(动态规划+排序+嵌套矩形问题)
Monkey and Banana HDOJ-1069 这里实际是嵌套矩形问题的变式,也就是求不固定起点的最长路径 动态转移方程为:dp[i]=max(dp[j]+block[i].h|(i,j)∈m ...
- pytorch(00)
pytorch入门到项目(-) 一.pytorch的环境 本身项目采用win10系统+pycharm+anaconda+cuda. 其中版本为 python 3.7 anaconda 5.3.1 cu ...
- redis使用ssh密钥远控靶机
首先说明一下我们的实验目的,我们这个实验需要利用一种公有密码,将公有密钥写入要攻击的服务器的redis数据库,然后使用我们自己的私钥进行远控肉鸡的操作. 实验环境:centos7(靶机,版本无太大 ...
- 为什么要从 Linux 迁移到 BSD1
为什么要从 Linux 迁移到 BSD1 作为一个操作系统,GNU/Linux 已经变得一团糟了,因为项目的分散性,内核的臃肿,以及商业利益的玩弄.从 GNU/Linux 迁移到 BSD 有几个技术上 ...
- C# 应用 - 使用 HttpWebRequest 发起 Http 请求
helper 类封装 调用 1. 引用的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll Syste ...