C语言第二十五弹--打印菱形

简介: C语言第二十五弹--打印菱形

C语言打印菱形

思路:想要打印一个菱形,可以分为上下两部分,通过观察可以发现上半部分星号的规律是 1 3 5 7故理解为 2×对应行数 + 1 ,空格是4 3 2 1故理解为 行数-对应行数-1。

上半部分代码如下

  for (int i = 0;i < line;i++)
  {
    //上半部分
    int j = 0;
    for (j = 0; j < line - i - 1; j++)//空格
    {
      printf(" ");
    }
    for (j = 0; j < 2 * i + 1; j++)//*
    {
      printf("*");
    }
    printf("\n");
  }

思路:观察下半部分可以看出,空格和对应行数相同,*号是7 5 3 1 满足2×(行数 - 对于行数值- 1) -1。

代码如下

  for (int i = 0; i < line - 1; i++)
  {
    int j = 0;
    for (j = 0; j <= i;j++)//空格
    {
      printf(" ");
    }
    for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)//*
    {
      printf("*");
    }
    printf("\n");
  }

总代码

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>nt main()
{
  int line = 0;
  scanf("%d",&line);
  for (int i = 0;i < line;i++)
  {
    //上半部分
    int j = 0;
    for (j = 0; j < line - i - 1; j++)//空格
    {
      printf(" ");
    }
    for (j = 0; j < 2 * i + 1; j++)//*
    {
      printf("*");
    }
    printf("\n");
  }
  //下半部分
  for (int i = 0; i < line - 1; i++)
  {
    int j = 0;
    for (j = 0; j <= i;j++)//空格
    {
      printf(" ");
    }
    for (j = 0; j < 2 * (line - 1 - i) - 1 ;j++)//*
    {
      printf("*");
    }
    printf("\n");
  }
  return 0;
}
相关文章
|
6月前
|
C语言
C语言-----用二维数组解决菱形的打印问题
C语言-----用二维数组解决菱形的打印问题
59 0
|
6月前
|
C语言
c语言编程练习题:7-4 输出菱形图案
本题要求编写程序,输出指定的由“A”组成的菱形图案。
80 0
|
6月前
|
C语言
c语言经典例题讲解(输出菱形,喝汽水问题)
c语言经典例题讲解(输出菱形,喝汽水问题)
90 0
|
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 打印菱形图案
73 0
|
6月前
|
C语言
用c语言画菱形( ̄_ ̄ )
用c语言画菱形( ̄_ ̄ )
64 0
|
C语言
【C语言刷题】水仙花数、打印菱形、求和
【C语言刷题】水仙花数、打印菱形、求和
76 0
|
C语言
C语言:打印菱形
题目:打印菱形 背景:无。 思路:采用两个 for 循环,利用数学知识,推出规律
69 0
C语言:打印菱形