概述
题目:输入一个奇数n,输出对角线长为n的实心或者空心的菱形图案
如当n=5时,有:
*
***
*****
***
*
=========
void myprint(int number,char mychar)
作为输出函数,第一个参数是需要输出的字符的个数,第二个参数是需要输出的字符
int n为输入的个数. int tn=1,i=1作为临时变量.
整个程序分为两个部分,第一个部分输出菱形的上部分:
*
***
*****
第一行输出2个空格,1个*;
第二行输出1个空格,3个*;
第三行输出0个空格,5个*;
...
发现,第一行的空格数=(n-1)/2
接下来,随着行数的增加,每加一行输出的空格就少一个,直到一个也不输出.
而第一行输出的*为1个,接下来,随着行数的增加,每加一行输出的*就多两个,直到输出的*的个数=n
当一行输出n个*的时候(此时将输出0个空格),第一个循环终结(故循环判断式为i≤n则继续输出,即!(i>n) ),进入下半部分.
下半部分输出为:
***
*
第一行输出1个空格,3个*;
第二行输出2个空格,1个*;
...
发现,第一行输出1个空格,接下来,随着行数的增加,每加一行输出的空格就多一个,直到输出的空格数=(n-1)/2
而第一行输出的*的个数为n-2个,接下来,随着行数的增加,每加一行输出的*就少两个,直到输出的*的个数=1(因为n是一个奇数,所以倒数第二次循环时输出的*数=3,最后一次输出的*数=1(正数),此时再-2则=-1(负数),所以用i>0来作为循环条件 ),接着第二个循环终结.
最后
以上就是精明火龙果为你收集整理的我的第一个算法学习,菱形图案的全部内容,希望文章能够帮你解决我的第一个算法学习,菱形图案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复