本题要求按照规定格式打印前N行杨辉三角。
输入格式:
输入在一行中给出N(1≤N≤10)。
输出格式:
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。
输入样例:
6
输出样例:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
具体代码实现如下:
#include<stdio.h>
void main()
{
int n;
int i,j,k,sign;
int a[10][10] = {0};
scanf("%d",&n);
//计算杨辉三角中的数值,并将其存放于a数组中
for(i=0;i<n;i++) {
for(j=0;j<=i;j++) {
//每行元素的第一个为1
if(j == 0) {
a[i][j] = 1;
}else if(j == i) { //每行元素的最后一个也为1
a[i][j] = 1;
}else {
//根据输出样例可以很容易得出中间元素的计算方法
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
}
//按照题目要求的格式打印杨辉三角
for(i=0;i<n;i++) {
sign = 1;
for(j=0;j<=i;j++) {
//根据输出样例,第一行元素比最后一行元素多输出n-1个空格,并且只需要输出一次。
所以用一个sign作为标记即可
if(sign == 1) {
for(k=i;k<n-1;k++) {
printf(" ");
}
sign = 0;
}
printf("%4d",a[i][j]);
}
printf("\n");
}
}```