c语言输出菱形for循环_C语言如何输出菱形
C语言如何输出菱形
适有同学问起一些C语言题目,本想上网搜索了事,但网上的方法都是分为上下部分用两个嵌套for循环输出。我想有没有合起来输出的呢,这样符合简洁又美观的要求呢?答案是有的。下面是小编为大家搜索整理的C语言如何输出菱形,希望大家能有所收获,更多精彩内容请及时关注我们应届毕业生考试网!
题目:输出行列都相等的菱形,如5行5列:
行列 12345
1 *
2 ***
3 *****
4 ***
5 *
分析:
当行数等于总行数的一半时,'*'是递增的,递增为2。
当行数大于总行数的一半时,'*'是递减的,递增为2。
设有一个行列为n的菱形,
我们用变量i作为行数,以0开始,i
k作为n菱第i行要输出的'*'个数。
则i<=n的中值(用m表示,m=(n-1)/2)时,k递增,i>m时,k递减。
因为k相对于m行对称,所以:
当i>m时,i每增加i-m时的k值就和第m-i行的k值相等,即第i-m行和第m-(i-m)相对称。
所以得出结果:
当i<=m时,k=2i+1
当i>m时,k=2(m-(i-m))+1,(m=(n-1)/2)。即k=2n-2i-1
由于我们只需要输出'*'左边的空格即可,所以每行'*'左边的空格的个数为:(n-每行的k)/2。
每行循环输出空格,再循环输出每行的`'*',再输出回车,结束一行。
这样我们就可以开始编程了。
#include
int main()
{
int i,j,k,n;//定义四个变量:i是行,j每行*号前的空格数,k每行的*号数
printf("please input odd n:");
scanf("%d",&n); //输入奇数n
for (i=0;i
{
if(n>=2*i+1) //判断k值
k=2*i+1;
else
k=2*n-2*i-1;
for(j=(n-k)/2;j>0;j--) //循环输出空格
printf(" ");
for(;k>0;k--) //循环输出*号
printf("*");
printf("n"); //输出回车结束一行
}
本来呢题目就到止结束了,但上面的程序还不够完美
比如说,别人输入n值为偶数怎么办?输入非数值呢?
我们加一点东西进去:
#include
int main()
{
int i,j,k,n=0; //这里给n赋初值,即使输入非数值,n也可有确切的值。
do{ //增加一个大循环,可以令n可以输入多次以观察不同的结果。
printf("please input odd n, 0 to exit:");//当输入0的时候,退出大循环,结束程序。
scanf("%d",&n);
if (!(n%2)) //增加对输入偶数的判断。
{
printf("you input a even, please input again.n");
continue;
}
for (i=0;i
{
if(n>=2*i+1)
k=2*i+1;
else
k=2*n-2*i-1;
j=(n-k)/2;
for(;j>0;j--)
printf(" ");
for(;k>0;k--)
printf("*");
printf("n");
}
}while(n);
return 0;
}
【C语言如何输出菱形】相关文章:
c语言输出菱形for循环_C语言如何输出菱形相关推荐
- c语言输出菱形for循环_c语言for循环如何打印菱形
c语言for循环打印菱形的方法:使用两个for循环,实现条件判断,代码为[int i,j;for(i=0; i<2*n-1; i++){if(i=n-i-1&&j c语言for循 ...
- c语言输出菱形for循环_c语言输出菱形
07 以下是所有的代码: #include void print(int n) { //判断n是否符合正奇数的要求 if(n < 0 || n % 2 == 0) //不符合则直接退出 retu ...
- c语言输入姓名输出姓和名_C输入和输出
c语言输入姓名输出姓和名 Input means to provide the program with some data to be used in the program and Output ...
- c程序设计语言 qsort,【程序设计基础_C语言】北理工的恶龙(附qsort范例)
[程序设计基础_C语言]北理工的恶龙(附qsort实例) 北理工的恶龙(附qsort实例) 背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集 ...
- vc 运行c语言步骤,第1章_C语言概述(vc++环境如何运行c语言程序)[精选].ppt
第1章_C语言概述(vc环境如何运行c语言程序)[精选] C语言程序设计 授课对象:电子商务06 时间安排: 理论课(1-9周): 星期一 5-6节 9407D 星期三 5-6节 9410D 实验课( ...
- c语言中闰年的流程图_C语言-算法与流程图
<C语言-算法与流程图>由会员分享,可在线阅读,更多相关<C语言-算法与流程图(22页珍藏版)>请在人人文库网上搜索. 1.目录,第一章 绪论 第二章 算法与流程图 第三章 数 ...
- c语言prime函数怎么用_C语言教程_v20201106
编程基础 1.1 通俗地理解什么是编程语言 1.2 C语言究竟是一门怎样的语言? 1.6 初中毕业能学会编程吗? 1.7 C和C++到底有什么关系? 1.8 学了 C 语 ...
- c语言最小点对问题_C语言教程(一):程序开发理论基础!
前言: 1.本系列教程适用于刚开始学习 C 语言的同学,或者初级开发者,或者想系统详细了解 C 语言的小伙伴. 2.本系列教程会从C语言基础到 C 语言高级语法,包含 C 语言所有系列. C语言简介 ...
- c语言n次方怎么输入_C语言基本数据类型的思维导图
在使用C语言编写程序时,数据类型是一个非常重要的内容,任何一个不被重视的数据错误都会使编译器无法翻译,导致程序报错. 使用思维导图来梳理各个数据类型是一个很有效的记忆方法,接下来就为大家展示一下我用i ...
- c语言string函数的用法_C语言基础| 指针和函数
点击蓝字关注我们 指针和函数 栈帧:当函数被调用时,系统会在stack空间上申请一块内存,用来给函数提供空间,存储形参和局部变量(定义在函数内部的变量). 当函数调用结束时,这块内存空间会被自动释放( ...
最新文章
- 编写python程序的步骤_编写python程序和运行.py文件的方法步骤
- ELK实时分析之php的laravel项目日志
- 世博会、新三国、新红楼
- VS项目属性中的C/C++运行库:MT、MTd、MD、MDd
- 【Android 应用开发】 Android 相关代码规范 更新中 ...
- PHP函数整理(一)
- 小米air耳机重新配对_小米发布 399 元真无线蓝牙耳机,除了小爱同学还支持其他手机语音助手...
- cba比赛比分预测_【CBA直播】深圳vs广东前瞻:深圳战广东再掀反攻?
- 域名解析服务之DNS查询类型
- Number.isInteger在IE中报错的解决方法
- ASP.NET2.0服务器控件之自定义状态管理
- 下行文格式图片_正确的公文格式图片.doc
- JS设计模式 - 工厂模式
- ssb门限_判断(2分) 由于DSB信号的调制制度增益是SSB的两倍,所以抗噪声性能比SSB好一倍...
- 基于风险平价的资产配置策略
- Istio的授权策略
- Android 复杂的手势处理利用GestureOverView
- 配置 NFS 网络文件系统
- OpenWrt配置打印服务器无线桥接,手机无线打印
- C++学习笔记(五)opencv在win下的使用 —参考浅墨opencv3编程入门
热门文章
- android ant build.xml实例
- 解决克隆centos虚拟机后ip配置失败的问题
- [51单片机] 串口通讯 简单通信
- MFC中onmouseover与onmousemove的区别
- 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
- 【Tensorflow/keras】KeyError: ‘loss‘
- 《机器学习Python实践》第5章——数据导入
- 在linux中安装Jupyter notebook
- 计算机图形学(一)——数据压缩:道格拉斯普克法
- ArcGIS学习总结(11)——创建点要素并计算对应经纬度