请问如何实现杨辉三角菱形的输出呢?例如键盘输入5,得到
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 3 3 1
1 2 1
1 1
1
-
近期文章
近期评论
- coolker 发表在《打造最快的Hash表》
- struggle 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- zhanghaibo 发表在《提供C语言教学课件(适用于初学者)》
- diys 发表在《C语言编程宝典(王大刚) 1.1 C 语言的产生与发展》
文章归档
- 2022 年十月
- 2014 年一月
- 2013 年十二月
- 2012 年十一月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十月
- 2011 年九月
- 2011 年八月
- 2011 年七月
- 2011 年六月
- 2011 年五月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年七月
- 2010 年六月
- 2010 年五月
- 2010 年四月
- 2010 年三月
- 2010 年二月
- 2010 年一月
- 2009 年十二月
- 2009 年十一月
- 2009 年十月
- 2009 年九月
- 2009 年八月
- 2009 年七月
- 2009 年六月
- 2009 年五月
- 2009 年四月
- 2009 年三月
- 2009 年二月
- 2009 年一月
- 2008 年十二月
- 2008 年十一月
- 2008 年十月
- 2008 年九月
- 2008 年八月
- 2008 年七月
- 2008 年六月
- 2008 年五月
- 2008 年四月
- 2008 年三月
- 2008 年二月
- 2008 年一月
- 2007 年十二月
- 2007 年十一月
- 2007 年十月
- 2007 年九月
- 2007 年八月
- 2007 年七月
- 2007 年六月
- 2007 年三月
- 2007 年二月
- 2007 年一月
- 2006 年十二月
- 2006 年十一月
- 2006 年十月
- 2006 年九月
- 2006 年八月
- 2006 年七月
- 2006 年六月
- 2006 年五月
- 2006 年四月
- 2006 年三月
- 2006 年二月
- 2006 年一月
- 2005 年十二月
- 2005 年十一月
分类目录
功能
一,打印杨辉三角
二,在对应行加相应空格数 构成上半部分(三角型)
三,打印下三角
===================
#define n 5 /*定义全局变量需要打印的行数*/
main()
{int i,j,k,a[n][n];
for(i=0;i<n;i++)
{a[i][0]=1;a[i][i]=1;}/*杨辉三角各行第一个数和最后一个数均为1*/
for(i=2;i<n;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];/*第三行以后中间各数满足此规律*/
for(i=0;i<n;i++)
{for(k=n;k>=i;k–)printf(“ “);/for语句循环控制打印空格次数,1空格2字节*/
for(j=0;j<=i;j++)printf(“%4d”,a[i][j]);/*打印杨辉三角*/
printf(“\n”);}
for(i=n-2;i>=0;i–) /*打印下三角
{for(k=n;k>=i;k–)printf(” ”);
for(j=0;j<=i;j++)printf(“%4d”,a[i][j]);
printf(“\n”);} */
printf(“\n”);
}
#include<stdio.h>
int port(int n,int m)
{
int i,p=0,mplot=1,nplot=1,nmplot=1;
if(n>=m)
{
if(n-m==0)p=1;
else
{
for(i=0;i<n;i++)
nplot=nplot*(n-i);
for(i=0;i<(n-m);i++)
nmplot=nmplot*(n-m-i);
for(i=0;i<m;i++)
mplot=mplot*(m-i);
p=nplot/(nmplot*mplot);
}
}
else
p=-1;
return(p);
} /*建立的一个组合公式计算函数*/
void main()
{
int a,i,j,z;
scanf(“%d”,&a); /*输入要输出到第几行*/
for(i=0;i<=a;i++)
{
for(z=0;z<=(a-i);z++)
printf(” “);
for(j=0;j<=i;j++)
printf(“%d “,port(i,j));
printf(“\n”);
} /*上半部分*/
for(i=(a-1);i>=0;i–)
{
for(z=0;z<=(a-i);z++)
printf(” “);
for(j=0;j<=i;j++)
printf(“%d “,port(i,j));
printf(“\n”);
} /*下半部分*/
}
我这个程序运行起来比较慢,还请各位多提点意见