#include <stdio.h>
void main()
{
int i,j,a[10][10];
for(i=0;i<10;i++)
{
a=1;
a[0]=1;
}
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
{
a[j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
printf("%6d",a[j]);
}
printf("\n");
}
}
打印出杨灰三角形(要求打印10行)
----------------解决方案--------------------------------------------------------
LZ的数组和指针没有理解
----------------解决方案--------------------------------------------------------
没学过指针
----------------解决方案--------------------------------------------------------
没有学过就不要用!你可以先学习以下
----------------解决方案--------------------------------------------------------
a=1;
a[0]=1;
a你是申请到一个二维数组但你用的时候并不是这样子
你把a既当作单独变量用,又当作一维数组,和二维数组,
其实a和a[0]都是指针,它在定义a[10][10]时已经确定了,不可以乱改.
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int i,j,a[10][10];
for(i=0;i<10;i++)
{
a=1; 这里肯定不对拉.数组名代表地址,不能赋值
a[0]=1; 这里表一维,也不能这样做;具体自己多看书. }
for(i=2;i<10;i++)
{
for(j=1;j<i;j++)
{
a[j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<10;i++)
{
for(j=0;j<=i;j++)
{
printf("%6d",a[j]);
}
printf("\n");
}
}
----------------解决方案--------------------------------------------------------
//我也写了一个
//出来的结果是对的
//你也可以用空格代替 0
//就行了
//
//
//
#include "stdio.h"
main()
{
int i,j,m=10;
int a[10][19]={0}; //a[m][2*m-1]
a[0][m-1]=1;
a[9][0]=1,a[9][18]=1; //add row after
for(i=1;i<=m-1;i++) //chage i=0 to i=1
{
for(j=1;j<=m-1;j++) //chage j<=m-1 to j<=m-1-1 sec. return
{
a[i][j]=a[i-1][j-1]+a[i-1][j+1];
a[i][(2*m-1)-1-j]=a[i][j];
}
}
for(i=0;i<=m-1;i++)
for(j=0;j<=(2*m-1)-1;j++)
{
printf("%d ",a[i][j]);
if(j==18)
printf("over\n");
}
getchar();
}
----------------解决方案--------------------------------------------------------
wz921
这么乱的程序亚
赋值赋的太乱了
----------------解决方案--------------------------------------------------------