当前位置: 首页 > news >正文

C语言| 输出菱形*(梳理篇II)

C语言| 输出菱形*-CSDN博客

凡事还是得自己独立思考后,写一遍程序才能发现问题所在。

容易犯的错误:

【完整程序+注释】

运行结果

/*
输出菱形
1  总行数 n为奇数,分上三角形+下三角形,只考虑左边的空格和星号*
2 上三角形 行数==(n+1)/2 
星号*为等差数列,公差为2,an=a1+(n-1)*d ,所以第i行的星号为1+(i-1)*2= {2*i-1}个
第i行的左边空格是 【行数-i】

3 下三角形 行数==上三角行数-1=(n+1)/2 -1
下三角形的首行* == 上三角形倒数第二行 == 对称行的前一行 == 2*{(n+1)/2 -1}-1 == {n-2}个
星号*为等差数列,公差为-2,an=a1+(n-1)*d,所以第i行的星号为{n-2}+(i-1)* -2== {n-2i}个
第i行的左边空格是i

4 因为需要用到for嵌套循环,才能把菱形打印出来
  for循环上三角形的行数-->for循环打印空格---for循环打印星号*
  for循环下三角形的行数-->for循环打印空格---for循环打印星号*
  循环的变量范围,是变量的取值。行数的值--空格的值--星号的值

5 行数从1开始,空格和星号从0开始,

 所以 int i = 1;  int j = 0;
*/

#include <stdio.h>

int main(void)
{
    int n = 0; //定义菱形的总行数

    int i; //定义行数的循环变量
    int j; //定义空格和星号*的数量的循环变量

    printf("请输入行数:");
    scanf("%d", &n);

    //上面的三角形,包含对称行,行数==(n+1)/2
    for(i=1; i<=(n+1)/2; i++)
    {    
        //打印空格,范围左边空格的数量
        for(j=0; j<(n+1)/2-i; j++)
        {
            printf(" ");
        }

        //打印星号*,范围是*的数量
        for(j=0; j<2*i-1; j++)
        {
            printf("*");
        }

        printf("\n"); //每次循环一遍,把打印的空格和星号换行输出;缺少这句就会放在同一行输出
    }

    //下面的三角形,行数==n/2
    for(i=1; i<=n/2; i++)
    {
        //打印空格
        for(j=0; j<i; j++)
        {
            printf(" ");
        }

        //打印星号
        for(j=0; j<n-2*i; j++)
        {
            printf("*");
        }

        printf("\n");
    }

    return 0;
}

http://www.lryc.cn/news/362122.html

相关文章:

  • conda使用
  • 适合小白学习的项目1949java图片管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • Jmeter实战教程入门讲解
  • Flutter 中的 PrimaryScrollController 小部件:全面指南
  • Windows线程同步的四种方式和区别
  • C++ 20新特性之Concepts
  • MATLAB基础应用精讲-【数模应用】SPSSAU数据处理
  • AI大模型探索之路-实战篇15: Agent智能数据分析平台之整合封装Tools和Memory功能代码
  • CV每日论文--2024.6.4
  • Android bw_costly_<iface>链
  • TypeScript 项目,自身 package 是 A,它引用了 B package。项目编译时,选择依赖版本的机制是什么?
  • 【数据结构】链表----头结点的作用
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • tinyrenderer-切线空间法线贴图
  • C++的vector使用优化
  • 关于stm32的复用和重映射问题
  • 遍历数组1
  • Go语言 一些问题了解
  • C++ Primer 第五版 第15章 面向对象程序设计
  • finebi或者finereport发邮件
  • 基于聚类和回归分析方法探究蓝莓产量影响因素与预测模型研究
  • 【数据结构】从前序与中序遍历,或中序与后序遍历序列,构造二叉树
  • ARM公司发展历程
  • C# :IQueryable IEnumerable
  • 三、生成RPM包
  • 单实例11.2.0.4迁移到11.2.0.4RAC_使用rman异机恢复
  • MySQL之查询性能优化(二)
  • The Best Toolkit 最好用的工具集
  • 使用C#反射中的MAKEGENERICTYPE函数,来为泛型方法和泛型类指定(泛型的)类型
  • sql注入 (运用sqlmap解题)