一、实验目的
了解数组的两种存储表示方法,掌握数组在以行或列为主的存储结构中的地址计算方法
二、实验内容
1. 构建数组a[3][3]、b[3][3],求两个数组元素之和并保存到数组result[3][3]中。
2. 将数组a[3][3]按行序为主序转换到一维数组k[9]中存放。
#include "stdio.h"
#define M 3
void matrixadd(int m1[M][M],int m2[M][M],int result[M][M])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
result[i][j]=m1[i][j]+m2[i][j];
}
}
void matrixtrams(int m1[M][M],int result[M*M])
{
int i,j;
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
result[i*M+j]=m1[i][j];
}
for(i=0;i<M*M;i++)
printf("%d ",result[i]);
printf("\n");
}
void display(int result[M][M])
{
int i,j;
printf("输出转换数值:\n");
for(i=0;i<M;i++)
{
for(j=0;j<M;j++)
printf("%d ",result[i][j]);
printf("\n");
}
}
main()
{
int a[M][M],b[M][M],result[M][M],k[M*M];
int i,j;
printf("输入a数值为:\n");
for(i=0;i<M;i++)
for(j=0;j<M;j++)
scanf("%d",&a[i][j]);
printf("输入b数值为:\n");
for(i=0;i<M;i++)
for(j=0;j<M;j++)
scanf("%d",&b[i][j]);
matrixadd(a,b,result);
display(result);
matrixtrams(a,k);
}