#define N 14
main()
{
int i, j, k, n=0, a[N][N] /*定义二维数组a[14][14]*/
while(n<=0||n>=13)
{ /*控制打印的行数不要太大,过大会造成显示不规范*/
printf("请输入要打印的行数:")
scanf("%d",&n)
}
printf("%d行杨辉三角如下:\n",n)
for(i=1i<=ni++)
a[i][1] = a[i][i] = 1 /*两边的数令它为1,因为现在循环从1开始,就认为a[i][1]为第一个数*/
for(i=3i<=ni++)
for(j=2j<=i-1j++)
a[i][j]=a[i-1][j-1]+a[i-1][j] /*除两边的数外都等于上两顶数之和*/
for(i=1i<=ni++)
{
for(k=1k<=n-ik++)
printf(" ") /*这一行主要是在输出数之前打上空格占位,让输出的数更美观*/
for(j=1j<=ij++) /*j<=i的原因是不输出其它的数,只输出我们想要的数*/
printf("%6d",a[i][j])
printf("\n") /*当一行输出完以后换行继续下一行的输出*/
}
printf("\n")
}
#include<stdio.h>int fun(int a[][100],int n)
main()
{
int n,i,j
int a[100][100]
scanf("%d",&n)
fun(a,n)
for(i=0i<ni++)
{
for(j=0j<=ij++)
printf("%d\t",a[i][j])
printf("\n")
}
}
int fun(int a[][100],int n)
{
int i,j
for(i=0i<ni++)
a[i][0]=1
for(i=0i<ni++)
for(j=0j<=ij++)
a[i][j]=1
for(i=1i<ni++)
for(j=1j<=ij++)
a[i][j]=a[i-1][j]+a[i-1][j-1]
}
#include<stdio.h>int main()
{
int i,j,k,a[10][10]//i控制行,j控制列
for(i=0i<10i++){
a[i][0]=1a[i][i]=1
}
for(i=2i<10i++)
for(j=1j<=i-1j++)
a[i][j]=a[i-1][j]+a[i-1][j-1]//等于正上方和它前一个的和
for(i=0i<10i++){
for(j=0j<=ij++)
printf("%6d",a[i][j])
printf("\n")
}
//下面是等腰的
for(i=0i<10i++){
for(k=0k<9-ik++)//k控制空格
printf(" ")
for(j=0j<=ij++)
printf("%6d ",a[i][j])
printf("\n")
}
return 0
}