【C语言】输入行数,打印上下对称的菱形

简介: 【C语言】输入行数,打印上下对称的菱形

输入行数,打印上下对称的菱形


菱形分解为上三角和下三角两部分

设菱形输入行数为n;当前行数为i;

很显然,对于上三角部分

当行数n等于1时有0空格,1“ * ”;

当行数n等于2时,第一行有1空格,1“ * ”; 第二行有0空格,3“ * ”;

当行数n等于3时,第一行有2空格,1“ * ”; 第二行有1空格,3“ * ”; 第三行有0空格,5“ * ”;

即第i行前n-i个都为空格,第i行有2i-1个“ * ”

同理,下三角也是如此推导


代码如下:

#include <stdio.h>
int main()
{
    int n,i,j;
    printf("请输入菱形的行数:");
    scanf("%d",&n);
  //打印上三角
    for(i=1;i<=n;i++)//打印第i行
  {
      for(j=1;j<=n-i;j++)//打印上三角第i行“*”前n-i个空格
    {
        printf(" ");
    }
    for(j=1;j<=2*i-1;j++)//打印上三角第i行2i-1个“*”
    {
      printf("*");
    }
    printf("\n");
  }
  //打印下三角
  for(i=1;i<=n-1;i++)//打印下三角的n-1行
  {
    for(j=1;j<=i;j++)//打印下三角第i行“*”前i个空格
    {
      printf(" ");
    }
    for(j=1;j<=2*(n-i)-1;j++)//打印下三角第i行2(n-i)-1个“*”
    {
      printf("*");
    }
    printf("\n");
  }
    return 0;
}

输出结果:

目录
相关文章
|
6月前
|
C语言
精准统计C语言中的行数
精准统计C语言中的行数
精准统计C语言中的行数
|
6月前
|
C语言
C语言-----用二维数组解决菱形的打印问题
C语言-----用二维数组解决菱形的打印问题
59 0
|
6月前
|
C语言
c语言编程练习题:7-4 输出菱形图案
本题要求编写程序,输出指定的由“A”组成的菱形图案。
83 0
|
6月前
|
C语言
c语言经典例题讲解(输出菱形,喝汽水问题)
c语言经典例题讲解(输出菱形,喝汽水问题)
91 0
|
5月前
|
C语言
C语言-----打印用“*”组成的X形图案,输出一个数表示行数
C语言-----打印用“*”组成的X形图案,输出一个数表示行数
|
6月前
|
存储 编译器 C语言
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(下)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
48 0
|
6月前
|
Java 编译器 定位技术
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(中)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
45 0
|
6月前
|
安全 程序员 C语言
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题(上)
从C语言到C++_22(继承)多继承与菱形继承+笔试选择题
49 0
|
6月前
|
C语言
c语言编程练习题:7-59 打印菱形图案
c语言编程练习题:7-59 打印菱形图案
74 0
|
6月前
|
C语言
用c语言画菱形( ̄_ ̄ )
用c语言画菱形( ̄_ ̄ )
66 0