#include <stdio.h>
void main()
{
int i,j;
int num[10][10];
num[0][0]=1;
num[1][0]=1;
num[1][1]=1;
for(i=0;i<10;i++)
{
for(j=0;j<i;j++)
{
if(i==0||i==1)
{
printf("%d ",num[i][j]);
}
else if(j==0&&j==i)
{
num[i][j]=1;
}
else if((i!=0&&i!=1)&&(j!=0&&j!=i))
{
if(j==1)
{
num[i][j]=num[i-1][0]+num[i-1][1];
}
else if(j==i-1&&j!=0)
{
num[i][j]=num[i-1][i-1]+num[i-1][i-2];
}
else
{
num[i][j]=num[i-1][j-1]*num[i-1][j];
}
printf("%d ",num[i][j]);
}
}
printf("\n");
}
getchar();
}
运行出来就是这样
想问一下这里是赋值有问题吗
getchar();?为什么还要输入字符
int num[10][10]={0};先试一下
23-26行好像没必要
你的代码逻辑有点乱
第一行输出个1,第二行输出个1,就是num[i][0]=1
其他的都是num [ i ][ j ] =num [ i - 1 ] [ j - 1 ] + num [ i - 1 ] [ j ];
因为赋了初值为0,后面的1也是可以这样输出的