解题思路:
1.将每行底一个数存于shuzu函数中,方便调用。
2.找到每行相邻数之差 t ,找到每行加几次 t。
注意事项:
在row函数中每输出一行,记得换行!!!
参考代码:#include
int shuzu(int i);
void row(int i,int n);
int main(int argc, char *argv[]) {
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++) //i为第几行,n为总行数
{
row(i,n);
}
return 0;
}
int shuzu(int i) //将第一列的数存于数组中
{
int j;
int a[101]={0,1};
for(j=2;j<101;j++)
{
a[j]=a[j-1]+(j-1);
}
return a[i]; //调用之后返回的数,即为每行第一个数
}
void row(int i,int n)
{
int j;
int flag;
int t;
t=i+1; //i+1为每行第一个数到第二个数所加
flag=shuzu(i); //调用函数,确定每行第一个数
printf("%d ",flag);
for(j=n-i;j>=1;j--) //n-i为每行所加t的次数
{
flag=flag+t;
t++; //t为所加的数
printf("%d ",flag);
}
printf("\n"); //每行输出后换行
}