《Linux C编程一站式学习》打印菱形题目
来源:互联网 发布:mac无法充电 灯不亮了 编辑:程序博客网 时间:2024/06/06 19:54
在《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("%c\t",c);}printf("\n");//每打印完一行便打印一个换行符 } } } int main(void){ diamond(9,'*');//以行数为5,字符为*为例,用于验证函数是否像预期一样打印出菱形图案 return 0;}
通过编译运行,diamond(9,'*')函数产生运行结果如图所示:
其他情况读者可自行测试。
第一篇C学习blog,若有不足之处,还望各位前辈多多指教!
阅读全文
1 0
- 《Linux C编程一站式学习》打印菱形题目
- 编写函数diamond打印一个菱形[题目来自Linux C编程一站式学习]
- Linux C一站式学习习题答案6.5.2打印菱形
- Linux C/C++编程一站式学习中输出菱形
- 五十道编程小题目 --- 19 打印菱形 java
- Java编程打印菱形
- 编程打印空心菱形
- 题目:打印出菱形图案
- C语言打印菱形
- c语言打印菱形
- c语言打印菱形
- c语言打印菱形
- C实例---打印菱形
- C 打印菱形
- c语言打印菱形
- c 打印空心菱形和实心菱形
- C语言打印菱形、金字塔
- C语言之打印菱形
- Spring MVC 注解——@Autowired
- react从零到native--npm及webpack学习
- solr下载及所需运行环境
- 文章标题:计算s=1+12+123+1234...
- C++入门基础知识
- 《Linux C编程一站式学习》打印菱形题目
- 3 π的计算
- C数组实现矩阵的转置
- Docker私服Registry搭建
- 1011. A+B和C (15)
- 机器学习算法系列(一)--决策树
- 四大组件
- Java 单例模式
- 【PB】数据窗口Grid创建及使用