Posted on 2012-08-19 15:40
hoshelly 閱讀(210)
評(píng)論(0) 編輯 收藏 引用 所屬分類(lèi):
C
二維數(shù)組的乘積計(jì)算:
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];
二維數(shù)組的分配:
#include<stdio.h>
#include<stdlib.h>
int **malloc2d(int r, int c) //二維數(shù)組分配函數(shù)
{
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;
}
綜合計(jì)算二維數(shù)組相乘的乘積。
代碼如下:
#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;
}