怎么动态分配内存给这个二维数组?
ztwz 2004-04-24 11:36:16 我想用输入杨辉三角的行数n,输出各行系数!请问用malloc()这个函数要如何实现!下面是我的想法,但是显然不能通过编译!请大虾指点
main()
{
int i,j,n,*s;
printf("please input somes number:\n");
scanf("%d",&n);
s=(int *)malloc(n*n*sizeof(int));
for(i=0;i<n;i++)
{
s[i]=1;
s[i*n+i]=1;
}
for(i=3;i<n;i++)
for(j=2;j<i-1;j++)
s[i*n+j]=s[(i-1)*n+j]+s[(i-1)*n+(j-1)];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%8d",s[i*n+j]);
printf("\n");
}
}
只有s[i][0]和s[i][i]正确被赋值,其它的都不对,我每次输入6但结果都不一样,我是用的tc2.0编译的
下面是三次输入的结果:
please input somes number:
6
1 1 1 1 1 1
15491 1 -18417 1 13136 20672
22096 12264 1 2244 17655 1026
29696 -249 2164 1 22797 25729
-3326 -14337 1915 0 1 1285
-30464 2116 -12422 1915 2174 1
please input somes number:
6
1 1 1 1 1 1
-14789 1 1735 1166 1 5355
16003 1164 1 2376 1 1
1 1 1 1 15491 1
-18417 1 2 20672 1 12264
1 2244 3 20674 29696 1
please input somes number:
6
1 1 1 1 1 1
29952 1 804 -14789 1653 1735
1164 1 1 29696 -18417 1
13136 20672 22096 1 -31747 2244
17655 1026 -22768 -249 1 20968
22797 25729 -21742 -23017 1604 1
请大虾们帮我看看这个问题,这个问题偶菜鸟真的不知道哪儿出问题了!