C语言输出菱形的方法_第1页
C语言输出菱形的方法_第2页
C语言输出菱形的方法_第3页
C语言输出菱形的方法_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——C语言输出菱形的方法题目:输出行列都相等的菱形,如5行5列:

行列12345

1*

2***

3*****

4***

5*

分析:

当行数等于总行数的一半时,*是递增的,递增为2。

当行数大于总行数的一半时,*是递减的,递增为2。

设有一个行列为n的菱形,

我们用变量i作为行数,以0开头,i

k作为n菱第i行要输出的*个数。

那么i=n的中值用m表示,m=n-1i=m时,k递减。

由于k相对于m行对称,所以:

当im时,i每增加i-m时的k值就和第m-i行的k值相等,即第i-m行和第m-i-m相对称。

所以得出结果:

当i=m时,k=2i+1

当im时,k=2m-i-m+1,m=n-1/2。即k=2n-2i-1

由于我们只需要输出*左边的空格即可,所以每行*左边的空格的个数为:n-每行的k/2。

每行循环输出空格,再循环输出每行的*,再输出回车,终止一行。

这样我们就可以开头编程了。

#include

intmain

inti,j,k,n;//定义四个变量:i是行,j每行*号前的空格数,k每行的*号数

printfpleaseinputoddn:;

scanf%d,n;//输入奇数n

fori=0;i

ifn=2*i+1//判断k值

k=2*i+1;

else

k=2*n-2*i-1;

forj=n-k/2;j0;j--//循环输出空格

printf;

for;k0;k--//循环输出*号

printf*;

printfn;//输出回车终止一行

本来呢题目就到止终止了,但上面的程序还不够完备

譬如说,别人输入n值为偶数怎么办?输入非数值呢?

我们加一点东西进去:

#include

intmain

inti,j,k,n=0;//这里给n赋初值,即使输入非数值,n也可有切当的值。

do//增加一个大循环,可以令n可以输入屡屡以查看不同的结果。

printfpleaseinputoddn,0toexit:;//当输入0的时候,退出大循环,终止程序。

scanf%d,n;

if!n%2//增加对输入偶数的判断。

printfyouinputaeven,pleaseinputagain.n;

continue;

fori=0;i

ifn=2*i+1

k=2*i+1;

else

k=2*n-2*i-1;

j=n-k/2;

for;j0;j--

printf;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论