- 相关推荐
C语言如何输出菱形
适有同学问起一些C语言题目,本想上网搜索了事,但网上的方法都是分为上下部分用两个嵌套for循环输出。我想有没有合起来输出的呢,这样符合简洁又美观的要求呢?答案是有的。下面是小编为大家搜索整理的C语言如何输出菱形,希望大家能有所收获!
题目:输出行列都相等的菱形,如5行5列:
行列 12345
1 *
2 ***
3 *****
4 ***
5 *
分析:
当行数等于总行数的一半时,'*'是递增的,递增为2。
当行数大于总行数的一半时,'*'是递减的,递增为2。
设有一个行列为n的菱形,
我们用变量i作为行数,以0开始,i
k作为n菱第i行要输出的'*'个数。
则i<=n的中值(用m表示,m=(n-1) 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
int main()
{
int i,j,k,n;//定义四个变量:i是行,j每行*号前的空格数,k每行的*号数
printf("please input odd n:");
scanf("%d",&n); //输入奇数n
for (i=0;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
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
{
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;
}
拓展:如何学习c语言最好?
(一)如何学习c语言最好
用PIC单片机开发电子产品和用C语言编程,最主要的是要坚持学习,不能中断。应通过各种实例程序来学习C语言的语法规则。要熟练掌握C语言的数据类型表达方法、各种运算符、各种语句结构。
最好能背诵。要学会用C函数实现所需功能的方法。实际上,每个C函数都相当于一个功能模块,一个C函数便可实现一种功能。
此外,用C语言开发PIC单片机应用产品,必须具有PIC单片机汇编语言知识。如果你已经掌握了用汇编语言编写PIC单片机源程序的方法,最好将编写成功的PIC单片机汇编语言源程序,逐个用C语言源文件代换,从中体会C语言的优越性。
(二)c语言学习技巧
1、首先准备一台PC,学编程一般对PC没有太大的要求,一般主流的配置就好。
2、有了电脑之后,就得考虑安装什么操作系统了,主流使用的操作系统是windows,不过在这里不建议学习C编程使用windows,建议使用Linux。所以学习者最好安装双系统,或者彻底习惯Linux系统。
3、不管学习哪门编程语言,我都建议学习者必须有一本关于此语言的全面知识的书籍,大学里一般采用的是谭浩强老师的《C语言程序设计》,建议学习者可以去仔细研读。
4、在平时学习看书的时候,一定有学会做笔记的习惯,而且不仅要记录,还要经常看自己所做的笔记,这样才会有较好的学习效率。
5、多逛技术论坛或者技术问答社区,想别人分享自己的代码,有要积极去阅读别人的代码,互相取长补短。
6、在C语言基础学习得差不多之后,可以深入学习数据结构,以及自己尝试做一些简单的项目,比如学生学籍管理系统、图书管理系统,银行管理系统等。
【C语言如何输出菱形】上海花千坊相关的文章:
C语言怎样输出菱形09-03
C语言输出菱形的方法11-24
如何更好地用c语言如何输出菱形11-08
C语言怎么输出一个菱形04-26
C语言数据的输入输出复习10-29
C语言数据输出及轻量进阶03-25
C语言字符串的输入输出10-04
C语言的字符串输出puts()函数10-04
C语言字符数组的几种输出方式11-22