天之道

享受编程的乐趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于二维数组

Posted on 2012-08-19 15:40 hoshelly 阅读(197) 评论(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;
}
    

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理