概述
在《linux C编程一站式学习》中循环语句一章的习题里,有一道关于编写函数diamond打印一个菱形的题目,题目的具体要求如下:
笔者是一名C初学者,在对该问题经过思考和验证后给出如下的程序代码:
#include<stdio.h>
#include<math.h>
void diamond(int n,char c) //定义一个用于打印菱形的函数,五返回值。n为打印的菱形总行数(或总列数),c为用于组成菱形的字符
{
if(n%2 == 0) //
{ //该段用于检测输入的正整数是否是奇数,
printf("Error,please provide an odd number!n"); //如果不是奇数则报错,并跳出该段函数
return; //
} //
else{ //
int a = n; //定义变量a,用于下面逐行打印时的行数记录
int m = (n+1)/2; //变量m为行数的中间值
for(int a = 1; a<=n; a++) //该for循环控制了从第一行到第n行逐行打印
{ //打印每行时,先打印空格,再打印菱形字符
for(int i = abs(m-a);i>=1;i--) //该for循环用于打印每行组图案的第一个字符前的空格
{ //通过简单的数学知识可发现规律,每行最初空格数是中间数与行号的差的绝对值
printf(" t"); //用到了math.h中的绝对值函数abs()
} //最初空格用一个空格和一个制表符来表示
for(int i = (n-abs(m-a)*2); i>=1;i--) //该循环用于打印组成菱形图案的符号
{
printf("%ct",c);
}
printf("n"); //每打印完一行便打印一个换行符
}
}
}
int main(void)
{
diamond(9,'*'); //以行数为5,字符为*为例,用于验证函数是否像预期一样打印出菱形图案
return 0;
}
通过编译运行,diamond(9,'*')函数产生运行结果如图所示:
其他情况读者可自行测试。
第一篇C学习blog,若有不足之处,还望各位前辈多多指教!
最后
以上就是笑点低中心为你收集整理的《Linux C编程一站式学习》打印菱形题目的全部内容,希望文章能够帮你解决《Linux C编程一站式学习》打印菱形题目所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复