Posted on 2012-08-19 15:40
hoshelly 阅读(204)
评论(0) 编辑 收藏 引用 所属分类:
C
二维数组的乘积计算:
for(i=0;i<N;i++)
for(j=0;j<N;j++)
for(k=0,c[i][j] = 0.0;k<N;k++)
c[i][j] +=a[i][k] * b[k][j];
二维数组的分配:
#include<stdio.h>
#include<stdlib.h>
int **malloc2d(int r, int c) //二维数组分配函数
{
int i;
int **t = (int **)malloc(r * sizeof(int *));
for(i=0;i<r;i++)
t[i] = (int *)malloc(c * sizeof(int));
return t;
}
int main()
{
int i,j;
int **a =malloc2d(3,3);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=i+j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
综合计算二维数组相乘的乘积。
代码如下:
#include<stdio.h>
#include<stdlib.h>
int **malloc2d(int r, int c)
{
int i;
int **t = (int **)malloc(r * sizeof(int *));
for(i=0;i<r;i++)
t[i] = (int *)malloc(c * sizeof(int));
return t;
}
int main()
{
int i,j,k;
int **a =malloc2d(3,3);
int **b =malloc2d(3,3);
int **c =malloc2d(3,3);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
a[i][j]=i+j;
b[i][j]=i+j;
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
printf("\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0,c[i][j] = 0.0;k<3;k++)
c[i][j] +=a[i][k] * b[k][j];
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%d ",c[i][j]);
printf("\n");
}
return 0;
}