当前位置: 代码迷 >> C语言 >> 大家看看哪里写错了?
  详细解决方案

大家看看哪里写错了?

热度:88   发布时间:2007-09-29 18:07:32.0
大家看看哪里写错了?

#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行)

搜索更多相关的解决方案: include  

----------------解决方案--------------------------------------------------------

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
这么乱的程序亚
赋值赋的太乱了

----------------解决方案--------------------------------------------------------
  相关解决方案