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

JERRY_Z. ~ 2020 / 8 / 26

转载请注明出处!


代码:

  1. /*
  2. * @Author: JERRY_Z.
  3. * @Date: 2020-08-26 17:17:38
  4. * @LastEditTime: 2020-08-26 18:09:48
  5. * @FilePath: \undefinede:\MyCode\Blog\C算法题\打印菱形\打印菱形.c
  6. */
  7. #include <stdio.h>
  8. int main(void){
  9. int n; //用于接收用户输入的菱形行数
  10. printf("Please enter the row number of the diamond (odd number) n:");
  11. scanf("%d", &n);
  12. int h1 = 0; //计数器 h1:从0起,记录当前行号为整体的第几行
  13. int h2 = 0; //计数器 h2:从0起,记录当前行号为整体后半段的第几行
  14. while (h1 < n) { //行循环
  15. ++h1; //进入新一行,h1+1
  16. int k = 0; //计数器 k:从0起,记录当前行的起始空格数
  17. int x = 0; //计数器 x:从0起,记录当前行的 '*' 数
  18. if (h1 <= (n/2)+1) { //行号属于菱形的上半段时执行
  19. while (k <= (n/2)+1-h1) { //循环打印起始空格
  20. printf(" ");
  21. ++k;
  22. }
  23. while (x != h1) { //循环打印 '*' 号
  24. printf("* ");
  25. ++x;
  26. }
  27. }//if
  28. else { //行号属于菱形的下半段时执行
  29. ++h2; //进入菱形后半段新一行,h2+1
  30. while (k <= h2) { //循环打印起始空格
  31. printf(" ");
  32. ++k;
  33. }
  34. while (x != n-h1+1) { //循环打印 '*' 号
  35. printf("* ");
  36. ++x;
  37. }
  38. }//else
  39. printf("\n"); //行末尾换行
  40. }//while
  41. return 0;
  42. }

运行结果:


附:

交流方式:

QQ: 1846334075

WeChat: zhoujirui54

CSDN:https://blog.csdn.net/D_si_God

Cnblogs:https://www.cnblogs.com/JERRY-Z-J-R/

GitHub:https://github.com/JERRY-Z-J-R

Gitee:https://gitee.com/JERRY-Z-J-R

C语言基础练习——打印菱形的更多相关文章

  1. C语言基础练习——打印乘法口诀表

    C语言基础练习--打印乘法口诀表 JERRY_Z. ~ 2020 / 8 / 26 转载请注明出处! 代码: /* * @Author: JERRY_Z. * @Date: 2020-08-26 16 ...

  2. C语言初学 数组 打印菱形

    #include<stdio.h> #include<stdlib.h> int main() { int n,i,j; printf("---开始打印符号--\n& ...

  3. C语言利用for循环打印菱形

    C语言利用for循环打印菱形(高度为奇数) 这次用的方法是上下部分分开打印,先打印上部分,再打印下部分. 先举个简单的例子打印,再改进代码,登堂入室从而理解. 例:打印一个高度(高度必须为奇数)为 5 ...

  4. JAVA 基础编程练习题19 【程序 19 打印菱形图案】

    19 [程序 19 打印菱形图案] 题目:打印出如下图案(菱形) *    ***  ************  *****    ***      * 程序分析:先把图形分成两部分来看待,前四行一个 ...

  5. C#语言基础

    第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...

  6. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  7. php面试题之三——PHP语言基础(基础部分)

    三.PHP语言基础 1. strlen( )与 mb_strlen( )的作用分别是什么(新浪网技术部) strlen和mb_strlen都是用于获取字符串长度. strlen只针对单字节编码字符,也 ...

  8. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  9. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

随机推荐

  1. php getimagesize 函数 - 获取图像信息

    getimagesize() 函数用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息. 语法格式:高佣联盟 www.cgewang.co ...

  2. luogu P2607 [ZJOI2008]骑士 tarjan dp

    LINK:骑士 本来是不打算写的 发现这道题在tarjan的时候有一个坑点 所以写出来记录一下. 可以发现图可能是不连通的 且一个连通块中是一个奇环树. 做法:类似tarjan找割点 然后把环给拉出来 ...

  3. bzoj 题目选做

    这里将记录着我在接下来的日子里在bzoj上遇到的各种 毒瘤题目 1.轮状病毒 题目是很没意思的 列出状态 显然无法递推 我简单推了一下加动态加点的状态 嗯发现规律没有那么简单 打表 也不太能发现吧 正 ...

  4. 10分钟 Castle.Windsor 适配 Asp.Net Core 3.0

    Asp.Net Core 3.0以上,不再能通过修改Starup.ConfigureServices返回值(IServiceProvider),所以只能调用IHostBuilder.UseServic ...

  5. 【BZOJ4631】踩气球 题解(线段树)

    题目链接 ---------------------- 题目大意:给定一个长度为$n$的序列${a_i}$.现在有$m$个区间$[l_i,r_i]$和$q$个操作,每次选取一个$x$使得$a_x--$ ...

  6. python6.3类的继承与多态

    class Animal(object): def __init__(self,color): self.color=color def eat(self): print("动物在吃!&qu ...

  7. 026_go语言中的通道方向

    代码演示 package main import "fmt" func ping(pings chan<- string, msg string) { pings <- ...

  8. 浅析Facebook LibraBFT与比原链Bystack BBFT共识

    如果说什么是区块链的灵魂,那一定是共识机制. 它是区块链的根基.无论公链或是联盟链,共识机制都从基础上限制了区块链的交易处理能力和扩展性. 2019年6月18日,Facebook 发布了自己 Libr ...

  9. Visual Studio 2017版本15.9现在可用

    本文转自 https://blogs.msdn.microsoft.com/visualstudio/2018/11/19/visual-studio-2017-version-15-9-now-av ...

  10. Azure Application Gateway(二)对后端 VM 进行负载均衡

    一,引言 上一节有讲到使用 Azure Application Gateway 为我们后端类型为 Web App 的 Demo 项目提供负载均衡,Azure Application Gateway 的 ...