c语言输出字母空心菱形,C语言实现打印菱形和空心菱形
一、引入
在C语言的基础学习阶段相信大家都编写过打印各种图形的代码,那么接下来就讲讲如何用程序实现这一功能吧。眼见为实,首先贴上效果图瞧瞧
二、程序代码
(1)实心菱形
int main()
{
int i, j, N = 5;
//上半部分
for(i = 0; i < N; i++) //N控制上半部分行数
{
for(j = i; j < N-1; j++) //随行数递增,空格数递减(这里每行前面的空格数分别为4,3,2, 1,0)
printf(" ");
for(j = 0; j < 2*i+1; j++) //随行数递增,“*”数递增(这里每行前面的*数分别为1,3,5,7,9)
printf("*");
printf("\n"); //记得换行
}
//下半部分,其实就是上半部分的翻转
for(i = N-2; i >= 0; i--) //这里i从N-2开始的,不知道为什么的可以换成N-1试试,保证秒懂
{
for(j = i; j < N-1; j++) //这里的空格数刚好相反,是随行数递增的
printf(" ");
for(j = 0; j < 2*i+1; j++) //这里的“*”数则是递减的(想想图形的样子)
printf("*");
printf("\n"); //同样的记得换行
}
return 0;
}
巧就巧在要将每行的 空格数 和 “*”数 以及 行数 三者之间的关系联系起来,当相同三者之间的关系之后问题就迎刃而解了。
(2)空心菱形
//空心菱形与实心菱形最大的不同就在于:实心菱形每行的“*”是一次性连续打印完的;而空心菱形每行的“*”之间穿插了空格,故需要分两次打印每一行的“*”与空格。
int main()
{
int i, j, k, N = 5;
//up
for(i = 0; i < N; i++)
{
for(j = 0; j < N-i-1; j++) //上下两部分每一行前面的空格数没有变化
printf(" ");
printf("*"); //注意这里只打印了一个“*”
if(0 != i) //这里判断条件的意思是仅当不是第一行时,后面每行才有第二个“*”需要打印
{
for(k = 0; k < 2*i-1; k++) //这里是确定一行中两个“*”之间间隔的空格数
{
printf(" ");
}
printf("*"); //后面补上一个“*”
}
puts(""); //已打印完一行了,换一行继续
}
//down
for(i = N-2; i >= 0; i--) //下半部分是上半部分的倒置,试着自己阅读代码思考一下原理吧
{
for(j = 0; j < N-i-1; j++)
printf(" ");
printf("*");
if(0 != i)
{
for(k = 0; k < 2*i-1; k++)
{
printf(" ");
}
printf("*");
}
puts("");
}
return 0;
}
三、结语
打印图形的程序主要是加深我们对for循环使用的熟练度及一定的逻辑思维能力,试着多敲几次这种类似的程序非常有助于我们的提高。
感兴趣的小伙伴们还可以尝试写程序实现如下图中所示的效果:
c语言输出字母空心菱形,C语言实现打印菱形和空心菱形相关推荐
- c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数
你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...
- C语言输出字母小树,数字小树,**号小树
1. 以下,是输出字母小树,及规律图解,及vs中使用是scanf的方法 ,(以下各片段都是一个程序里的代码片段) 首先得对输入数据 进行检查,(程序的健壮性) #define _CRT_SECURE_ ...
- c语言——输出字母c
题目:用*号输出字母C的图案. 程序如下: 运行结果:
- 字母出现频率c语言,统计字母的使用频率c语言实现
void main(){char ch; // ch用于一次接收一个字符int i,s [26] = {0}; //数组s []用于计算每个小写字母printf的数量("请输入一个字符串: ...
- c语言输出字母表,用c语言输出字母c和菱形
望远 #include void main() { printf(" ****\n"); printf(" * *\n"); printf(" ...
- c语言输出字母abcd,有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下:...
有字母ABCD,请用C语言编写程序,输出由该四个字母组成的字符串.要求如下: 答案:6 信息版本:手机版 解决时间 2019-10-06 21:36 已解决 2019-10-06 01:51 1.包 ...
- c语言输出字母是问号,为什么数组输出会多一个问号
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:为什么数组输出会多一个问号回答:这个问题问的.是什么数组,int数组,char数组?什么叫多输出一个问好.最好把码贴出来,才知道是什 ...
- c语言输出字母是问号,关于C语言输出ASCII码128~255和有符号char型溢出的问题。此处大坑弄明白了后记录下来分享……...
以下代码在控制台正常输出会出现乱码 #include int main(){ char a=197; printf("%c",a); return 0; } 为什么呢? 前提条件说 ...
- c语言输出6行三角形,c语言实践 打印字母三角形
效果如下: 我是怎么想的: 总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下: for(int i=0;i<6;i++) { } 每行都会打印字母,而且循环越往后,需要打印 ...
- C语言 输出字母图案(金字塔)
下面两题在cdsn找了很久,几乎没有合适的答案 一,请编写输出以下图案的程序,图案的行数由输入的整数值确定. ABBBCCCCC DDDDDDD...#include <stdio.h>i ...
最新文章
- 真正拖垮年轻人的,是沉没成本
- Laravel 事件侦听的几个方法 [Trait, Model boot(), Observer Class]
- ASP.NET 完成基于表单的身份验证
- python代码颜色不同_Python填充任意颜色,不同算法时间差异分析说明
- Response_案例3_输出字节数据
- gcc编译多个源代码文件的过程(引出makefile)
- python pca降维_机器学习之sklearn中的降维算法
- 问题 C: 编写函数:比较字符串 之一 (Append Code)
- Python实战之多线程编程threading.Thread
- Python爬虫基础之Urllib
- 制造业erp整体业务流程
- 欧姆龙OMRON PLC程序,威纶触摸屏螺丝机 配方程序。 用ST语言编写程序+威纶触摸屏程序
- Adb connection Error:远程主机强迫关闭了一个现有的连接。
- H5分享页面(1)——web端二次分享配置内容
- clickhouse 集群异常排查处理总结
- ip route 命令的作用详解
- HashMap的原理及扩容
- typec扩展坞hdmi没反应_解决电脑接口不足难题,实测绿联九合一type-c扩展坞到底有多强...
- 解决迅雷下载外网文件速度为0
- Codeforces - Cashback