如何用c语言控制输出杨辉三角,要是等腰三角形的输出?

如题所述

这个是我没有验证,是在VC情况下实现的。希望能帮到你
#include "stdio.h"
#define N 10
void yh(int,int);
double jc(int);
void main()
{
int i=0,j=0;
for(i=0;i<=N;i++)
{
for(j=0;j<=i;j++)
{
yh(i,j);
}
printf("\n");
}
getch();
}
void yh(int i,int j)
{
double a=0;
a=jc(i)/(jc(j)*jc(i-j));
printf("%-4.0lf",a);
}
double jc(int n)
{
double sum=0;
if (n == 0)
sum=1;
else
sum=n*jc(n-1);
return(sum);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-05
会输出下三角形式的杨辉三角吧?那就再在每行开头先输出 n,n-1 ,n-2 .....个空格就成等腰三角形的啦。。追问

怎么控制循环输出呢?

追答

#include
void main()
{
int i,j,n,a[10][10]={0}; //定义一个 10X10 的数组,这里应根据自己的需要来设定
/*不过要注意,由于程序输出窗口宽度有限和数字太长的原因,
输出的层数不宜超过10,不然可能会出现数据顺序和结构出现混乱*/

/*输入要输出的杨辉三角的层数*/
printf("请输入打印的杨辉三角的层数n(0<n<=10):");
scanf("%d",&n);

/*首先给矩阵第一列和对角线元素赋初值1*/
for(i=0;i<n;i++)
a[i][0]=a[i][i]=1;

/*求出矩阵中的其他元素的值*/
for(i=1;i<n;i++)
{for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];}

/*输出 n 层的正三角形的杨辉三角*/
for(i=0;i<n;i++)
{for(j=i;j<n;j++)
printf(" "); //先在每行输出3个空格
for(j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf(" \n");
}
希望对你有用^_^

相似回答