当前位置: 代码迷 >> C语言 >> 杨辉三角
  详细解决方案

杨辉三角

热度:829   发布时间:2006-04-18 11:33:00.0
杨辉三角
用数组!
输出8行杨辉三角行,即:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 1010 5 1
………………
格式没对好。来不及啦!!!
搜索更多相关的解决方案: 杨辉三角  

----------------解决方案--------------------------------------------------------
-.-貌似中午到了。全去吃午饭了吖。
即将下课,回宿舍研究去。。。有高人跟上。谢谢
----------------解决方案--------------------------------------------------------

main()
{
int a[8][8],i,j;
for(i=0;i<9;i++)
{
a[i][i]=1;
a[i][0]=1;
}

for(i=2;i<8;i++)
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];

for(i=0;i<8;i++)
{
for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n\n");
}

}


----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{
int a[11][11];
int i,j;
a[1][1]=1;
printf("%-5d\n",a[1][1]);
a[2][1]=a[2][2]=1;
printf("%-5d%-5d\n",a[2][1],a[2][2]);
for(i=3;i<=10;i++)
{
a[i][1]=1;
for(j=1;j<=i-2;j++)
{
a[i][j+1]=a[i-1][j]+a[i-1][j+1];
}
j--;
a[i][j+2]=1;
for(j=1;j<=i;j++)
{
printf("%-5d",a[i][j]);
}
printf("\n");
}
}
在VC++6.0测试
已通过!

----------------解决方案--------------------------------------------------------
-0-好心人真多。稍微看了下,我自己写的问题实在是多。考虑得太少了。3楼的用过了,不错呢。
回去在思考下,自己写个。呵呵!

[此贴子已经被作者于2006-4-19 16:49:12编辑过]


----------------解决方案--------------------------------------------------------
以下是引用zk516在2006-4-19 16:45:00的发言:
#include <stdio.h>
main()
{
int a[11][11];
int i,j;
a[1][1]=1;
printf("%-5d\n",a[1][1]);
a[2][1]=a[2][2]=1; // 这样负值的话是不是 a[2][1]和a[2][2]的值都为1啊!! 我初学 请指教一下
printf("%-5d%-5d\n",a[2][1],a[2][2]);
for(i=3;i<=10;i++)
{
a[i][1]=1;
for(j=1;j<=i-2;j++)
{
a[i][j+1]=a[i-1][j]+a[i-1][j+1];
}
j--;
a[i][j+2]=1;
for(j=1;j<=i;j++)
{
printf("%-5d",a[i][j]);
}
printf("\n");
}
}
在VC++6.0测试
已通过!

[此贴子已经被作者于2006-4-19 18:37:24编辑过]


----------------解决方案--------------------------------------------------------
这个问题很多书上都出现过
----------------解决方案--------------------------------------------------------
回去好好看看书!
----------------解决方案--------------------------------------------------------
从右往左看,符合c语言语法.
再比如
int a,b,c=1;
a=0<b=c<3;
则b=0;a=0;
当然不一定都是从右往左的,各种运算是有顺序的.建议多看书。
比如
!((a==2)||(b==(c=(0>3))))等价于!(a==2||b==(c=0>3))
而!(a==2||b==c=0>3)则是错误的,因为赋值=优先极最低.编译的时候就会出现错误.

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