发表时间:2017-05-17来源:网络
c语言如何输出菱形方法步骤 c语言编程输出字母菱形 适有同学问起一些C语言题目,本想上网搜索了事,但网上的方法都是分为上下部分用两个嵌套for循环输出。我想有没有合起来输出的呢,这样符合简洁又美观的要求呢?答案是有的。
题目:输出行列都相等的菱形,如5行5列:
行列 12345
1 *
2 ***
3 *****
4 ***
5 *
分析:
当行数等于总行数的一半时,'*'是递增的,递增为2。
当行数大于总行数的一半时,'*'是递减的,递增为2。
设有一个行列为n的菱形,
我们用变量i作为行数,以0开始,i<n。
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<stdio.h>
int main()
{
int i,j,k,n;//定义四个变量:i是行,j每行*号前的空格数,k每行的*号数
printf("please input odd n:");
scanf("%d",&n); //输入奇数n
for (i=0;i<n;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<stdio.h>
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<n;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;
}
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中include和require区别之我见
PHP中的(++i)前缀自增 和 (i++)后缀自增
将视频设置为Android手机开机动画的教程
php递归返回值的问题
掌上小满app(又名OKKI)下载v6.24.2 安卓版
108.1M |商务办公
星巴克中国官方版app下载v10.9.3 安卓版
138.0M |生活服务
abc reading app手机版下载v7.3.35 安卓最新版本
218.9M |学习教育
智慧联想摄像头app(更名智享家)下载v4.1.6.2 安卓最新版本
211.4M |生活服务
星通货主app下载v902 安卓版
142.5M |生活服务
火花思维官方版下载v2.1.1 安卓手机版
208.6M |学习教育
火山小视频极速版2025(改名抖音火山版)下载v33.4.0 安卓官方正版
248.5M |影音播放
泰州通app下载v2.2.2 安卓版
126.9M |商务办公
2014-09-05
2022-03-17
2014-09-05
2014-09-05
2015-07-05
2022-03-21
2014-09-05
2014-09-05
2022-03-20
2014-09-05
奇迹觉醒手游官方版下载v16.3.0 安卓正版
其它手游全民奇迹2官方版下载v14.0.0 安卓最新版
其它手游光遇虫虫助手版下载v0.13.9 安卓版
休闲益智剑侠世界3手游官方正版下载v1.6.24425 安卓版
角色扮演汽车城宝宝巴士游戏(改名为宝宝汽车城市)下载v9.86.00.01 安卓版
其它手游宝宝汽车城市游戏下载v9.86.00.01 安卓最新版
其它手游fifaonline4官方移动端最新版本(足球在线4移动版)下载v1.2503.0005 安卓版
体育运动腾讯欢乐麻将全集ios版下载v1.0.4 iphone官方版
其它手游龙之谷2手游官方版下载v1.53.2 安卓最新版
角色扮演