C程序设计(第五版)谭浩强p138第16题,输出一个菱形图案

C程序设计(第三版)课后代码习题第五章最简单的C程序设计——选择结构程序设计 C语言程序设计课后代码习题 阅读详情

一.思路

1. 这个图案是7 * 7矩阵组成,由一个上三角形和下三角形图案组成,可以分成两个矩阵,其中上三角在4 * 7矩阵中,下三角在3 * 7矩阵中;
2. 4 * 7矩阵中 i = [0,1,2,3],j = [0,1,2,3,4,5,6];3 * 7矩阵中,i = [0,1,2],j = [0,1,2,3,4,5,6];
3. 图案是处于矩阵的中间,以j=3时为分界,对应数字矩阵,当i=0,j=3时,"星"的坐标为(0,3),当j!=3时,其他坐标上是"空格"。由此分析,我们只要在数字矩阵中相应的坐标输出"星",相应的坐标输出"空格"。
4. 程序中用2个for内外嵌套循环分别表示一个4 * 7矩阵和一个3 * 7矩阵,其中:
    1. 4 * 7矩阵第一行中"空格"居多,我们以输出"空格"为主:
        1. 当i = 0,j的取值在 j < 3 || j > 3时输出"空格"
        2. 当i = 1,j的取值在 j < 2 || j > 4时输出"空格"
        3. 可以得到表达式j < (3 - i) || j > (3 + i)
    2. 3 * 7矩阵矩阵第一行中"星"居多,我们以输出"星"为主:
        1. 当i = 0,j的取值在 0 < j < 6时输出"星"
        2. 当i = 1,j的取值在 1 < j < 5时输出"星"
        3. 可以得到表达式 j > i && j < 6 - i

二.代码实现

#include<stdio.h>
#include<stdlib.h>
/*
    输出以下图案:
            *
           ***
          *****
         *******
          *****
           ***
            *
*/
int main()
{
    // 1.1 先输出上三角
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 7; j++)
        {
            if (j < (3 - i)|| j > (3 + i))
                printf(" ");
            else
                printf("*");
        }
        printf("\n");
    }
    // 1.2 然后下三角
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 7; j++)
        {
            if (j > i && j < 6-i)
                printf("*");        
            else printf(" ");
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

三.输出结果

四.总结

        类似该问题都是在一个数字矩阵中显示,将矩阵中图案所在坐标输出,就得到我们所要的图案。

LVGL v8.3 图片显示与解码缓存实战:PNG 上屏、C 数组与文件双方案 LVGL v8.3 图片两种存储方式、PNG/JPG 上屏解码器挂载、LV_IMG_CACHE_DEF_SIZE 缓存调优、手动预解码头像有效性判断,及"缓存被动画清空"真实踩坑。 阅读详情

相关推荐

第五章习题6-求1!十2!+3!十4!十…十20!

希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,支持一下笔者吧~

Larry的博客 781

C语言程序设计-谭浩强第五版习题【答案解析】2022.5.10

目录第1章 C语言概述第2章 数据类型及其运算第3章 顺序结构程序设计第4章 选择结构程序设计第5章 循环结构程序设计第7章 函数与指针第8章 结构体与共用体第9章 文件第10章 图形与动画 习题解析与答案 第1章 C语言概述 一. 简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switc

@MIKE小助手 3万+

5个4000比特大状态置换算法的设计与分析

下面是 5 个概念性、实验性的 4000 位可逆置换设计。它们都保证是双射,但未经过密码分析,不可直接用于生产系统。风格分别覆盖:三维 SPN、Feistel、可逆元胞自动机、ARX、宽轨迹/Keccak 式结构。 这 5 个设计分别代表了 SPN、Feistel、元胞自动机、ARX、宽轨迹 Keccak 五种不同风格,覆盖了主流大状态置换的构造思路。再次强调:它们只是实验性概念,若要用于实际协议,必须经过严格安全性分析。

HuangJinLong2的博客 355

谭浩强第五版C语言程序设计第五章16题

用循环输出星号图案

weixin_55133630的博客 279

SATA硬件电路设计实战:从接口规范到高速布线技巧

本文深入探讨了SATA硬件电路设计的核心要点与实战技巧。从接口物理电气规范、AC耦合电容与阻抗控制等基础,到FPGA/SoC高速收发器选型配置,再到应对6Gbps高速信号的PCB布局布线艺术,系统性地解析了SATA电路设计中的关键挑战与解决方案,助力工程师规避常见陷阱,实现稳定可靠的存储接口设计。

tech5的博客 531

医疗AI新思路:为什么Graph Neural Network能改善气道分割的漏检问题?

本文探讨了Graph Neural Network(GNN)在医疗AI领域改善气道分割漏检问题的创新应用。通过分析3D UNet等传统方法的局限性,揭示了GNN在图结构建模中的独特优势,特别是在捕捉细小末梢支气管方面的突破性表现。文章详细介绍了UNet-GNN混合架构的设计原理、实验性能对比及优化方向,为CT影像分析提供了新思路。

weixin_30379531的博客 224

c语言c程序设计5.16,C语言程序设计答案(黄保和编)第5章

一、选择题1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行2.设有程序段”int x=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);”则A 运行程序段后输出13.若有语句”int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));”,则该程序段C 输出的是1和-24...

weixin_35965587的博客 784

HFSS微带线仿真从零到一:材料参数与求解设置优化指南

在射频电路设计中,微带线仿真涉及电磁场求解与传输线理论,其精度高度依赖材料参数和求解设置。相对介电常数、损耗角正切和导体电导率等参数直接影响特性阻抗与插入损耗,而求解频率、网格划分和参数扫描则决定仿真效率与收敛性。合理设置这些参数可显著提升S参数准确性,避免设计迭代。应用场景包括天线馈线、滤波器和微波互连。本文基于HFSS微带线仿真实践,系统讲解材料选择与参数优化全链路,帮助工程师快速复现可靠模型。

weixin_29192211的博客 79

C语言程序设计(第五版)谭浩强 小红本 章节习题答案全集

tip:谭老的小绿本(C程序设计试题汇编 第三版)的个人刷题勘误记录即将整理完毕。

Dylan的博客 2万+

信号完整性之阻抗(五)

一、什么是阻抗 阻抗的概念是从高中或者初中大家可能就会接触到,没想它一直陪伴我十年了。在我的印象中,提到阻抗我可能就会想到电阻,这样的思想局限也限制了我平常思考问题。所以今天也想把阻抗这个概念在顺理一遍,有错误或者欠缺的地方希望大家指正。 1.什么是阻抗: ==在具有电阻、电感和电容的电路里,对电路中的电流所起的阻碍作用叫做阻抗。阻抗常用Z表示,是一个复数,实部称为电阻,虚部称为电抗,其中电容在电路中对交流电所起的阻碍作用称为容抗 ,电感在电路中对交流电所起的阻碍作用称为感抗,电容和电感在电路中对交流电引

刘小同学的博客 2587

安时积分法和开路电压法结合估算锂电池SOC

基于安时积分法和开路电压法结合的锂电池SOC估计Simulink仿真建模,利用安时积分法计算放电过程中的SOC,在搁置状态利用开路电压法进行SOC修正。

qq_39304296的博客 2554

MOOC程序设计与算法(一)a.打印菱形

#include   using namespace std; int main() { char s=' '; int  n=5; int i, j; cin >> s; for (i = 0; i { for (j = 1; j cout for (j = 1; j cout cout } for (i = n/2; i >= 0; --i) {

木木家 386

MDK5 Debug调试方法总结

MDK5 Debug调试方法总结

m0_70748084的博客 2万+

C语言 输出菱形

输出下列图案 首先,这种菱形图案是谭浩强的C语言程序设计第五章循环中一个非常different的题目,不同于往常的套公式,做数学题,这个是直接打印图形,相对来讲,看起来可能会有些难度,但是让我们捋捋思路,其实也没想像中那么难。 这道题表面上是打印菱形,换个角度思考,实际上它是打印空格和*型 看思路 行数 空格 * 号 1 3 1 ...

qq_42766201的博客 1316

Open3D点云数据处理(六):点云、mesh可视化(Visualizer类)

本文介绍了Open3D中Visualizer类可视化几何对象的方法,给出了常用参数解释和代码示例。

孙悟空 3025

视觉Transformer实战 | Data-efficient image Transformer(DeiT)详解与实现

在计算机视觉领域,Vision Transformer (ViT) 已经证明了纯 Transformer 架构在图像分类任务上的强大能力。然而,ViT 通常需要在大规模数据集上预训练才能达到最佳性能,DeiT (Data-efficient image Transformer) 通过引入一系列训练策略和优化,使得 Transformer 模型能够在相对较小的数据集上取得优异表现。本节将详细介绍 DeiT 的技术原理,并使用 PyTorch 从零开始实现 DeiT 模型。

盼小辉丶的博客 1341

输出菱形的算法!

本算法其实不能称之为算法,可以说是偷懒型的数学模型。首先将菱形的两个对角线连起来,交点设为坐标中心(0,0),那么绘制的菱形的范围就在|x|+|y| #include #define abs(a) (a>0 ? a:(-a)) void main() { int x,y,size; printf("请输入一个长度:\n"); scanf("%d",&size); f

追 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C++编程输出菱形

源代码:#include using namespace std; int main() { int n, i, j; cout << "Input a number:" << endl; cin >> n; i = n - 1; j = 1; while (i >= 0 && j <= 2 * n - 1) { int w = i; int t = j; for (i = w; i >

GELATO 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C语言——用“*”输出一个菱形

   如何输出如图所示的菱形先要将菱形分为上下两个三角形(例如图示,上为7行的正三角,下为6行的倒三角),接下来通过两个循环分别输出这两部分。首先设置变量line代表上行数,通过键盘输入,接着设置三个变量 i, j, k( i 控制循环次数, j 控制空格数, k 控制“*”的个数)。在上三角中,循环line次,行数 =i+1,空格数=line-行数=line-(i+1),“*”的个数=2*行数-...

Lsxlsxls(*^▽^*) 3万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

编程:输出一个菱形

#include <stdio.h> void printchar (int m,char ch) { int i; for (i=0;i<m;i++) { putchar(ch); } } int main() { int i,j; for (i=0;i<5;i++) { printchar (5-i,' ')

XG17_38241417117的博客 812

static 的三种用法:C 语言里一个关键字的三张面孔

本文系统讲解 C 语言中 static 关键字的三种用法:修饰局部变量延长生命周期、修饰全局变量与函数限制作用域到本文件。通过一个包含三个文件的完整工程示例对照演示,并从存储期、作用域与链接性三个属性解释其统一原理,最后补充单元测试框架偏爱 static 函数的工程实践。

大模型全栈工程师 · Thanks_ks 315

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 218

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 314

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 590

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 20
下一篇: 用筛选法求100之内的素数
想吃海鲜196
博客等级 码龄7年 28粉丝 2原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值