编程打印具有如下形式的杨辉三角形,其中输出数据的行数n从键盘输入,并且n<=10。
程序运行结果示例1:
Input n (n<=10):
5↙
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
#include<stdio.h>
void s(int a[10][10],int n);
int main()
{
int n,a[10][10],i,j;
printf("Input n (n<=10):\n");
scanf("%d",&n);
s(a,n);
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%4d",a[i][j]);
if(j==i)
printf("\n");
}
}
return 0;
}
void s(int a[10][10],int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(j==0)
a[i][j]=1;
else if(i==1&&j==1)
a[i][j]=1;
else if(j==i)
a[i][j]=1;
else
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
有的提上要求输出的是“等腰三角形”,其实只要在输出格式上变形就可以 程序如下:
(只用在主函数中改,函数S不变)--(主函数改动如下)
#include<stdio.h>
void s(int a[10][10],int n);
int main()
{
int n,a[10][10],i,j,k;
printf("Input n (n<=10):\n");
scanf("%d",&n);
s(a,n);
for(i=0;i<n;i++)
{
for(k=1;k<=n-i;k++)
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("%2d",a[i][j]);
if(j==i)
printf("\n");
}
}
return 0;
}
希望对你有帮助