来吧,有分啊!帮!!!!!!!!!
各位高手:
在c 里怎么实现二维动态数组啊
比如:
a[3][2]={{100,234},{101,234},{110,345}}
b[3][2]={{100,2341},{102,3341},{110,3451}}
c[1][2]={{100,2}}
最后得到下边的:
100 234 2341 2
101 234 9999 9999
102 9999 3341 9999
103 9999 9999 9999
104 9999 9999 9999
105 9999 9999 9999
106 9999 9999 9999
107 9999 9999 9999
108 9999 9999 9999
109 9999 9999 9999
110 345 3451 9999
那位大侠帮写一个c 语言的程序啊
[解决办法]
void main()
{
inta[3][2]={{100,234},{101,234},{110,345}};
int b[3][2]={{100,2341},{102,3341},{110,3451}};
int c[1][2]={{100,2}};
int d[11][4];
for (int i=0;i <11;i++)
{
for (int j=1;j <4;j++)
{
d[i][0]=100+i;
d[i][j]=9999;
}
}
for(i=0;i <3;i++)
{
for(int j=0;j <11;j++)
{
if(a[i][0]==d[j][0])
{
if (a[i][1] <1000&&a[i][1]> 100)
{
d[j][1]=a[i][1];
}
else if (a[i][1]> 1000&&a[i][1] <10000)
{
d[j][2]=a[i][1];
}
else if (a[i][1] <10)
{
d[j][3]=a[i][1];
}
}
}
}
for(i=0;i <3;i++)
{
for(int j=0;j <11;j++)
{
if(b[i][0]==d[j][0])
{
if (b[i][1] <1000&&b[i][1]> 100)
{
d[j][1]=b[i][1];
}
else if (b[i][1]> 1000&&b[i][1] <10000)
{
d[j][2]=b[i][1];
}
else if (b[i][1] <10)
{
d[j][3]=b[i][1];
}
}
}
}
for(i=0;i <3;i++)
{
for(int j=0;j <11;j++)
{
if(c[i][0]==d[j][0])
{
if (c[i][1] <1000&&c[i][1]> 100)
{
d[j][1]=c[i][1];
}
else if (c[i][1]> 1000&&c[i][1] <10000)
{
d[j][2]=c[i][1];
}
else if (c[i][1] <10)
{
d[j][3]=c[i][1];
}
}
}
}
for (i=0;i <11;i++)
{
for(int j=0;j <4;j++)
{
cout < < ' ';
cout < <d[i][j];
}
cout < <endl;
}
}
[解决办法]
好了
#include <stdio.h>
int main()
{
int **p;
int x,y,i;
scanf( "%d %d ",&x,&y);//x,y分别是行数和列数
p = (int **)malloc(sizeof(int **)*x);
for (i=0;i <x;++i)
p[i]=(int*)malloc(sizeof(int)*y);
for (i=0;i <x;++i)
free(p[i]);
free(p);
return 0;
}